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;
    }
上一篇下一篇

猜你喜欢

热点阅读