一、题目
给定一个包含 [0, n]
中 n
个数的数组 nums
,找出 [0, n]
这个范围内没有出现在数组中的那个数。
二、解题思路
数组{1,2,3,...,n}的求和公式为:
想要找到缺失的数,只需要一次遍历数组,使用sum减去每个num[i],最后剩下的数即为缺失的数。
例如:nums=[3,0,1]
数组{1,2,3}的和为sum=(3+1)*3/2=6;
依次遍历数组nums, 6-nums[0]-nums[1]-nums[2]=6-3-0-1=2;
即2为没有出现在数组中的那个数。
三、代码
class Solution {
public int missingNumber(int[] nums) {
int len =nums.length;
int ans=len*(len+1)/2;//求和公式
for(int i=0;i<len;i++) {
ans-=nums[i];//减去数组中存在的数
}
return ans;
}
}
四、运行结果