您的位置:首页 > 其它

leetcode——Missing Number

2016-09-09 00:11 155 查看
原题目:

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?
解析:题目要求在线性复杂度以及常量空间内解决,首先这是一个缺失一个元素的以0为第一项的等差数列,所以可以根据等差数列前n项和公式来解决,补齐缺项,所以要按n+1项来计算,故完整n+1项和为n(n+1),减去数组中的n项和即可得到缺失项的值,算法简单易实现。

class Solution {
public:
int missingNumber(vector<int>& nums) {
int sum=0, n=nums.size();
for(int i=0; i<n; i++)	sum += nums[i];
return (n*(n+1))/2 - sum;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息