题解 | #缺失的第一个正整数#
缺失的第一个正整数
https://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int minNumberDisappeared (int[] nums) {
int r=0;
//利用TreeSet的排序特性,取得一个有序的集合
Set<Integer> set=new TreeSet<>();
for(int i=0;i<nums.length;i++ ){
//过滤负数
if(nums[i]>0){
set.add(nums[i]);
}
}
//为了通过索引拿到最大的数,将TreeSet转成数组
Integer [] arr=new Integer[set.size()];
arr=set.toArray(arr);
//遍历从1到数组中最大的数,第一个不在TreeSet的即没有出现的最小的正整数
for(int j=1;j<=arr[arr.length-1];j++){
if(!set.contains(j)){
r=j;
return r;
}
}
//如果在从1到数组中最大的数中没找到最小数,那么就返回最大数+1的那个数
return arr[arr.length-1]+1;
}
}
顺丰集团工作强度 369人发布