<LeetCode OJ> 268. Missing Number

原创 2016年01月04日 19:22:42

268. Missing Number

Total Accepted: 31740 Total Submissions: 83547 Difficulty: Medium

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?





分析:DONE

我真蛋疼,题意理解错了,我还以为是干嘛呢!
后来才明白原来是随机从0到size()选取了n个数,其中只有一个丢失了(显然的)。
别人的算法:数学推出,0到size()的总和减去当前数组和sum

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


这道问题被标注为位运算问题:参考讨论区的位运算解法:

这个异或运算以前用到过,到这道题还是想不起这个方法,我真是日了狗了!

异或运算xor,
0 ^ a = a ^ 0 =a
a ^ b = b ^ a
a ^ a = 0
0到size()间的所有数一起与数组中的数进行异或运算,
因为同则0,0异或某个未出现的数将存活下来

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



注:本博文为EbowTang原创,后续可能继续更新本文。如果转载,请务必复制本条信息!

原文地址:http://blog.csdn.net/ebowtang/article/details/50457902

原作者博客:http://blog.csdn.net/ebowtang


版权声明:本文为EbowTang原创文章,后续可能继续更新本文。如果转载,请务必复制本文末尾的信息!

[leetcode] 268.Missing Number

题目: Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is mis...
  • u014673347
  • u014673347
  • 2015年08月24日 10:30
  • 457

leetcode 268: Missing Number

Missing Number Total Accepted: 10033 Total Submissions: 31720 Given an array containin...
  • xudli
  • xudli
  • 2015年09月08日 09:19
  • 2211

LeetCode268——Missing Number相濡以沫不如相忘于江湖

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missi...
  • booirror
  • booirror
  • 2015年08月24日 21:46
  • 3140

<LeetCode OJ> 268. Missing Number

268. Missing Number My Submissions Question Total Accepted: 31740 Total Submissions: 83547 Diffi...
  • EbowTang
  • EbowTang
  • 2016年01月04日 19:22
  • 2081

【LeetCode】268 Missing Number (java实现)

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin...
  • styshoo
  • styshoo
  • 2015年08月29日 12:28
  • 717

[LeetCode]268. Missing Number 用异或处理

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is miss...
  • shenxuan520
  • shenxuan520
  • 2016年09月20日 10:15
  • 259

LeetCode 268 Missing Number

题目描述Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is miss...
  • Yano_nankai
  • Yano_nankai
  • 2015年12月12日 11:22
  • 2942

268. Missing Number(重要!)

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is miss...
  • gao1440156051
  • gao1440156051
  • 2016年07月13日 16:46
  • 365

LeetCode 268. Missing Number(缺失数字)

原题网址:https://leetcode.com/problems/missing-number/ Given an array containing n distinct numbers...
  • jmspan
  • jmspan
  • 2016年04月11日 02:15
  • 377

oj 268. Missing Number

要求  Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that ...
  • sinat_32329183
  • sinat_32329183
  • 2017年04月08日 10:18
  • 58
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:<LeetCode OJ> 268. Missing Number
举报原因:
原因补充:

(最多只允许输入30个字)