题目来源:力扣https://leetcode.cn/problems/missing-number/
题目简介 :
一个数组中有几个数,他的范围就是0到几,遍历数组,返回在这个范围内没有出现的数字。
思路:
由于不需要记录值出现的次数,只要知道有没有就行了,我们可以采用哈希集合的办法,存储键值,然后遍历哈希集合,看哪个位置为0,为0的那个位置的键值就是丢失的数字
代码实现:
int missingNumber(int* nums, int numsSize){
int i;
int map[numsSize + 1];
memset(map, 0, sizeof(map));
for (i = 0; i < numsSize; i++) {
map[nums[i]]++;//第一个这个for用来往map里面填数字
}
for (i = 0; i <= numsSize; i++) {//第二个for就是用来从map里找没有丢失数字的作用
if (map[i] == 0) {
return i;
}
}
return -1;
}