题解 | #缺失的第一个正整数#
缺失的第一个正整数
https://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
思路
构建哈希表,映射为数组元素对数组元素,使用while循环对哈希表进行循环获取值,当从哈希表中获取不到该值时,此值为缺失的第一个正整数,如果遍历完了,仍未找到,说明缺失的第一个正整数在后一位
代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int minNumberDisappeared (int[] nums) {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param nums int整型一维数组
* @return int整型
*/
public int minNumberDisappeared(int[] nums) {
// 构建哈希表
Map<Integer, Integer> map = new HashMap<>(nums.length / 2);
// 遍历数组
for (int num : nums) {
if (num > 0) {
map.put(num, num);
}
}
// 设置索引
int index = 1;
while (index < map.size()) {
// 如果哈希表中找不到该映射
if (map.get(index) == null) {
// 返回此处的索引
return index;
}
index++;
}
// 如果哈希表中均有映射,说明缺失的第一个正整数是后一位
return index + 1;
}
}