268. Missing Number(重要!)

来源:互联网 发布:中小学图书馆软件下载 编辑:程序博客网 时间:2024/06/04 17:40

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.

Note:

Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?


方法一:

求和相减得到的就是消失的。

class Solution {public:int missingNumber(vector<int>& nums) {int len = nums.size();int sum = (1 + len)*len / 2;int sum2 = 0;for (int n : nums){sum2 += n;}return sum - sum2;}};

方法二:异或

 

137. Single Number II  

260. Single Number III 类似

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


0 0
原创粉丝点击