/* 时间复杂度有要求的,首先就是考虑用hashmap之类的数据结构,可以实现o(1)的查找速度 题目的要求是找到不连续的第一个正数,因此,我们需要将所有的数防盗map的key中,然后从1开始往后找,找第一个间断的位置。 极端情况下,数组内都是正数,且有序,返回max+1 */ public int firstMissingPositive(int[] nums) { Map<Integer,Integer> hashMap=new HashMap<>(); int max=0; for(int i=0;i<nums.length;i++){ hashMap.put(nums[i],nums[i]); if(max<nums[i]){ max=nums[i]; } } if(nums.length==0){ return 1; } for(int i=1;i<=max;i++){ if(!hashMap.containsKey(i)){ return i; } } return max+1; }
41. First Missing Positive
最新推荐文章于 2020-09-09 23:19:42 发布