<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

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

[leetcode] 268.Missing Number

题目: Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is mis...

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

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missi...

[LeetCode]268 Missing Number

很简单,提供两种解法。 (1)等差数列先求得总和,然后减去给定的队列,剩下的值就是缺失值。 (2)先排个序,逐个比较,不等的直接return 第一种的代码: class Solution { ...
  • NK_test
  • NK_test
  • 2015年10月25日 00:16
  • 3008

LeetCode 268. Missing Number(缺失数字)

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

268. Missing Number(重要!)

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is miss...

leetcode:268. Missing Number(Java)解答

转载请注明出处:z_zhaojun的博客 原文地址 题目地址 Missing NumberGiven an array containing n distinct numbers taken...

LeetCode - 268. Missing Number

一开始想到的思路是使用和来计算,首先我们通过公式将从1到n的和计算出来,因为给出的数组中少了一个元素,所以我们再计算一下给出的数组的和,用1到n的和减去给出的数组的和,就得到了结果。时间复杂度为O(n...

Leetcode 268 Missing Number

一,问题描述 1,给定一个数组,包含n个不同的数字,从0,1,2,3,…,n中,找到数组中缺少的那个数。2,例如 [0,1,3] 输出2输入: [0, 1 ,2 ,4] 输出3 ...

[LeetCode-268] Missing Number(找缺失的数字)

找到数组中缺失数:分以下两种解法:①输入数组是有序数组②输入数组是无序数组。输入的数组是一个无序数组(当缺失添加进输入时,排序后是一个等差数列,公差为1),找到缺失数,题目要求时间复杂度为n,所以想先...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:<LeetCode OJ> 268. Missing Number
举报原因:
原因补充:

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