您的位置:首页 > 其它

268. Missing Number

2017-01-05 15:10 344 查看
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?
时间复杂度O(n)比较好办,但是空间复杂度O(1)难一些。
将所有的i与nums[i]异或,得到的结果就是少掉的那个数。

public class Solution {
public int missingNumber(int[] nums) {
int xor=0,i;
for(i=0;i<nums.length;i++){
xor^=i^nums[i];
}
return xor^i;
}
}另一种方法为求和:sum(i)-sum(nums[i]). 但是结果很可能会溢出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: