题目如下:
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
示例 1:
输入: [0,1,3]
输出: 2
示例 2:
输入: [0,1,2,3,4,5,6,7,9]
输出: 8
这道题的思路是分别求出0到n-1数组与缺失一位数组的和,由于缺失元素是唯一的,所以二者相减之后就可得到缺失元素。代码如下:
class Solution {
public:
int missingNumber(vector<int>& nums) {
int Sn_1 = 0;
int Sn_2 = 0;
int length = nums.size();
for(int i = 0; i<length+1; i++)
{
Sn_1 += i;
}
for(int j = 0; j<length; j++)
{
Sn_2 += nums[j];
}
int missing = Sn_1-Sn_2;
return missing;
}
};