LeetCode: 268. Missing Number
来源:互联网 发布:gtx950m4g独显数据 编辑:程序博客网 时间:2024/06/07 06:25
LeetCode: 268. Missing Number
Given an array containing n distinct numbers taken from 0, 1, 2, …,
n, find the one that is missing from the array.For example, Given nums = [0, 1, 3] return 2.
Note: Your algorithm should run in linear runtime complexity. Could
you implement it using only constant extra space complexity?Credits: Special thanks to @jianchao.li.fighter for adding this
problem and creating all test cases.
自己的答案,13ms:
public class Solution { public int missingNumber(int[] nums) { if (nums == null || nums.length == 0) { return 0; } Arrays.sort(nums); int i = 0; for (i = 0; i < nums.length; i++) { if (nums[i] != i) { return i; } } return i; }}
最快的答案,1ms:
public class Solution { public int missingNumber(int[] nums) { int sum = 0; for (int i = 0; i < nums.length; i++) { sum += nums[i]; } return (nums.length * (nums.length + 1)) / 2 - sum; }}
3 different ideas: XOR, SUM, Binary Search. Java code
xor:
public int missingNumber(int[] nums) { //xor int res = nums.length; for(int i=0; i<nums.length; i++){ res ^= i; res ^= nums[i]; } return res;}
求和:
public int missingNumber(int[] nums) { //sum int len = nums.length; int sum = (0+len)*(len+1)/2; for(int i=0; i<len; i++) sum-=nums[i]; return sum;}
二分查找:
public int missingNumber(int[] nums) { //binary search Arrays.sort(nums); int left = 0, right = nums.length, mid= (left + right)/2; while(left<right){ mid = (left + right)/2; if(nums[mid]>mid) right = mid; else left = mid+1; } return left;}
阅读全文
0 0
- [leetcode] 268.Missing Number
- 【leetcode】268. Missing Number
- [leetcode] 268. Missing Number
- Leetcode 268. Missing Number
- 268. Missing Number LeetCode
- LeetCode 268. Missing Number
- 【LeetCode】268. Missing Number
- [LeetCode]268. Missing Number
- LeetCode *** 268. Missing Number
- 【leetcode】268. Missing Number
- leetcode-268. Missing Number
- LeetCode-268.Missing Number
- LeetCode 268. Missing Number
- [Leetcode] 268. Missing Number
- 【leetcode】268. Missing Number
- leetcode 268. Missing Number
- 【leetcode】268. Missing Number
- leetcode- 268. Missing Number
- Android自定义按钮之圆角矩形
- 跨域问题以及解决办法
- 利用redis实现tomcat session共享
- mac 配置jdk1.8
- 构建之法
- LeetCode: 268. Missing Number
- [PAT-甲级]1004.Counting Leaves
- java 文件上传实现
- JVM实用参数GC日志
- 一些网站
- 初见蓝桥—— 历届试题 分糖果
- hadoop进程之间的对应关系和相关概念
- leetcode169题解
- 使用redis和zookeeper实现分布式锁