【LeetCode】268. Missing Number

原创 2016年05月31日 16:20:45

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) {
        double prox;
        int size=nums.size();
        int sum=0;
        
        for(int i=0;i<size;i++){
            sum+=nums[i];
        }
        
        prox=-0.5+sqrt(0.25+2*sum);
        
        if(1+ceil(prox)==size){
            
            return prox+1;
            
        }else{
            int c=ceil(prox);
            return c*(c+1)/2-sum;
        }
    }
};

解题思路:

等差数列求和公式:(首项+末项)*表大小/2

然后将输入的表求和。用一元二次求根公式求出最接近该和的一个数字就知道其实实际的表长了

再用求和公式对此数字求和-输入表的和就是缺的那一个数。


会做这题证明了我数学至少有初二水平(XD)

应该还有位操作的方法的,不过这个看起来也已经很快了。运气好能够打败80%的答案

嘿嘿

下次研究

leetcode 268: Missing Number

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

【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
  • 718

[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 mis...
  • u014673347
  • u014673347
  • 2015年08月24日 10:30
  • 458

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

<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
  • 2083

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
  • 366

LeetCode - 268. Missing Number

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

<leetcode>268. Missing Number

Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing ...
  • sinat_28028941
  • sinat_28028941
  • 2016年12月15日 10:36
  • 146

LeetCode:268. Missing Number

LeetCoed:268. Missing NumberGiven an array containing n distinct numbers taken from 0, 1, 2, …, n, f...
  • BestZem
  • BestZem
  • 2016年07月24日 11:07
  • 254
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【LeetCode】268. Missing Number
举报原因:
原因补充:

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