int N = numsSize;
int ret = (N+1)*(0+N)/2; //等差数列求和:项数 *(首项+尾项)/ 2;因为numsSize是消失数字的数组长度
//所以项数需要+1;
for(int i = 0 ; i < numsSize ; i++)
{
ret-=nums[i];
return ret;
}
需要注意的是:N太大存在溢出风险。
思路3:异或(相同的值异或==0)
实现代码:
//创建一个变量保存异或的值
int x = 0;
//通过for循环把消失数字的数组异或一遍
for(int i = 0 ; i < numsSize ; i++)
{
x ^= nums[i];
}
//在用消失数字数组所有值异或的数字异或一遍完整数组即可得出消失的数字;
for(int j = 0 ; j <= numsSize ; j++)
{
x ^= nums[j];
}
//将消失的数字返回
return x;