Missing Number
2017-06-28 本文已影响0人
BigBig_Fish
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.
在有范围的n个数中找出没有出现的哪一个,那么其他的数字都出现了一遍,申请一个空间为O(n)的标志位数组flag[],初始化为0,遍历nums[],令 flag[nums[i]-1] = 1
,最后找出0对应的index。
代码
int missingNumber(vector<int>& nums) {
vector<int> flag(nums.size()+1, 0);
for(int num:nums){
flag[num] = 1;
}
for(int i=0; i<flag.size()+1; i++){
if(flag[i] == 0){
return i;
}
}
}
位操作方法
XOR异或的方法:abb = a
int missingNumber(vector<int>& nums) {
int result = nums.size();
int i=0;
for(int num:nums){
result ^= num;
result ^= i;
i++;
}
return result;
}