题目描述
从0,1,2,...,n这n+1个数中选择n个数,组成有序数组,找出这n个数中缺失的那个数,要求O(n)尽可能小。
解题思路-位运算
假设缺的数字为x
a可以表示为
下标范围为
因此从到,进行异或操作,res初始化为, 就能得到缺失的数字
实现代码
*/
public int solve (int[] a) {
// write code here
int len = a.length;
int res = len;
for(int i = 0; i < len; i++){
res ^= i ^ a[i];
}
return res;
}