方法一:数学法
利用数学求和公式进行求解,将[0,n]所有的数加和并与原数组nums的和,相减得到的差就是没有出现在这个数组中的数。
总和=(首项+末项)X项数/2
class Solution
{
public int missingNumber(int[] nums)
{
int n = nums.length;
int a = (n+0) * (n + 1) / 2;
int b = 0;
for (int i = 0; i < n; i++) {
b += nums[i];
}
return a - b;
}
}
方法二:排序法
先将数组进行排序,找到符合num[ i ] ! = i 的位置,则该位置的数 i 就是数组中缺失的数。若在该范围内恒存在nums[ i ] 则缺失的数就为 a 。