美文网首页
Missing Number

Missing Number

作者: BigBig_Fish | 来源:发表于2017-06-28 17:05 被阅读0次

    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;
        }
    

    相关文章

      网友评论

          本文标题:Missing Number

          本文链接:https://www.haomeiwen.com/subject/gdwucxtx.html