题目描述:
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.
Example 1:
Input: [3,0,1]
Output: 2
Example 2:
Input: [9,6,4,2,3,5,7,0,1]
Output: 8
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
给定[0,n]范围内的n个不同的数,其中只有一个数缺失了,需要在O(1)的时间复杂度和空间复杂度内找到它。由于0~n的总和已知,可以计算这n个数的和,那么差值就是缺失的那个数。
class Solution {
public:
int missingNumber(vector<int>& nums) {
int n=nums.size();
int sum=n*(n+1)/2;
for(int i=0;i<n;i++) sum-=nums[i];
return sum;
}
};
本文介绍了一种在给定范围内寻找缺失数字的有效算法。通过计算0到n的总和并与数组元素相减,即可在线性时间和常数空间复杂度内找到缺失的数字。示例代码展示了如何实现这一算法。
350

被折叠的 条评论
为什么被折叠?



