本文主要是介绍let41 41. First Missing Positive,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Given an unsorted integer array, find the first missing positive integer.For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.Your algorithm should run in O(n) time and uses constant space.
主题思想: 这道题要求O(n) 那就是遍历一遍, 肯定不能排序了,所以利用map 去查找第一次,没有出现的正整数
class Solution {public int firstMissingPositive(int[] nums) {if(nums==null||nums.length==0) return 1;Map<Integer,Boolean> record=new HashMap<Integer,Boolean>();int mx=0;int mn=Integer.MAX_VALUE;int i=0;for(i=0;i<nums.length;i++){if(nums[i]<=0) continue;if(nums[i]>mx) mx=nums[i];record.put(nums[i],true);}if(mx==0) return 1;for(i=1;i<=mx;i++){if(!record.getOrDefault(i,false))break;}return i;}
}
这篇关于let41 41. First Missing Positive的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!