import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型一维数组
     */
     public int[] findMissingAndMaxNegative (int[] nums) {
        // write code here
        Set<Integer> set = new TreeSet<>();
        for(int i=0;i<nums.length;i++){
             set.add(nums[i]);
        }
        int negative = 0;
        for(int value:set){
            if(value>=0){
                break;
            }else{
                negative = value;
            }
        }
        int positive = 1;
        while (set.contains(positive)){
            positive++;
        }
        return new int[]{positive,negative};
    }
}

本题考察的知识点是数组元素的查找,所用编程语言是java.

我利用treeSet去重从小到大排序的特点,查找数组中最大的负整数和缺失的最小正整数。set.contains函数可以判断某数是否存在,可以很方便的判断是否缺失某个正整数。我们从1开始枚举然后看缺失的最小正整数是多少