268. Missing Number

来源:互联网 发布:淘宝轮播代码超简单 编辑:程序博客网 时间:2024/06/06 19: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.

最简单的一个方法就是利用等差数列求和,从数学可以知道:
如果一个数组an=[1,2,3,4…n], 那么Sn=n*(n+1)/2;
因为此题是从0开始的,0占了一个位置,所以上述求和公式可以用,如果是从1开始,那么就是(n+1)*(n+2)/2;
代码如下:

class Solution {public:    int missingNumber(vector<int>& nums) {        int n=nums.size();        int sum=n*(n+1)/2;        for(int i=0;i<nums.size();i++)            sum-=nums[i];        return sum;    }};
原创粉丝点击