您的位置:首页 > 其它

【LeetCode】(268)Missing Number(Medium)

2015-08-24 15:23 363 查看

题目


Missing Number

Total Accepted: 1351 Total
Submissions: 3840My Submissions

Question
Solution

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?

解析

很简单,如果vector中有n个数,那么理应有n+1个数,分别为0,1,2...n+1

理应的和为(n+1)n/2

而事实上的和可以用线性时间算出,做差就得到少的那个数了。

class Solution {
public:
int missingNumber(vector<int>& nums) {
int sum = 0;
int sumReal = (nums.size()+1) * (nums.size())/2;

for (int i = 0;i<nums.size();i++)
sum += nums[i];

return sumReal - sum;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: