方法一:
用一个辅助数组记录0-n的出现情况
class Solution {
public int missingNumber(int[] nums) {
int[] auxNums = new int[nums.length+1];
for(int i =0;i<nums.length;i++){
auxNums[nums[i]] = 1;
}
for(int i = 0;i<nums.length+1;i++)
{
if(auxNums[i] == 0) return i;
}
return -1;
}
}
方法二:
排序
class Solution {
public int missingNumber(int[] nums) {
Arrays.sort(nums);
//末尾不存在
if(nums[nums.length-1]!=nums.length)return nums.length;
//0不存在
else if(nums[0]!=0)return 0;
//其他情况
else{
for(int i = 1;i<nums.length;i++){
if(nums[i]!=nums[i-1]+1) return nums[i-1]+1;
}
}
return -1;
}
}
方法三:
位运算
方法四:
数学方法