问题链接:https://leetcode.com/problems/first-missing-positive/
问题要求在O(n)时间复杂度内完成,返回数组连续值序列中缺失的最小的正数,需要使用Bitmap这种数据结构来解决。不难理解,代码如下:
class Solution {
public int firstMissingPositive(int[] nums) {
if(nums.length==0)
return 1;
int max=Integer.MIN_VALUE;
for(int i:nums)
max=Math.max(max,i);
BitSet set=new BitSet(max+1);
for(int i:nums)
{
if(i>0)
set.set(i);
}
for(int i=1;i<=max;i++)
{
if(!set.get(i))
return i;
}
return max+1;
}
}