268. Missing Number

来源:互联网 发布:淘宝当当旗舰店 编辑:程序博客网 时间:2024/05/23 15:47

题目

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.


思路

用异或计算,和之前那个求数组中只出现一次的数字的算法是类似的。
遍历异或nums[i]和i,最后结果就是缺失的数,result的初始值要是nums.size()


代码

class Solution {public:    int missingNumber(vector<int>& nums) {        int result = nums.size();        for(size_t i=0;i<nums.size();i++)        {            result ^= nums[i];            result ^= i;        }        return result;    }};
0 0