方法1:这个题,没有重复的,所以先求出总长度,然后计算1到总长度-1的累加和,然后再和sums的和做减法,就是最后的缺失值
class Solution {
public int missingNumber(int[] nums) {
//算出和,减去。。
int n=nums.length+1;
int sum=0;
int sum1=0;
for(int i=0;i<n;i++){
sum=sum+i;
}
for(int i=0;i<nums.length;i++){
sum1=sum1+nums[i];
}
return sum-sum1;
}
}
方法2:计数排序的方法,根据nums的总数+1,去构建一个新的数组,然后用nums的每个值当下标去给新数组赋值1,然后遍历新数组,找出值为0 的那个元素下标,就是缺失值
class Solution {
public int missingNumber(int[] nums) {
//n个数
int res=0;
int n=nums.length+1;//因为有一个缺失,总长度多一个
int[] jishu=new int[n];
for(int temp:nums){
jishu[temp]++;
}
for(int i=0;i<n;i++){
if(jishu[i]==0){
res=i;
}
}
return res;
}
}
还有个异或的方法,明天补,上课去