题目传送地址: ​​https://leetcode.cn/problems/first-missing-positive/​

Leetcode 41. 缺失的第一个正数_leetcode


解题思路:

这种题不难,很容易就想到用位运算来解题。刚好java体系里有一个Bitset类。 具体可以参考文档 ​​https://www.runoob.com/java/java-bitset-class.html​

代码如下:

public static int firstMissingPositive(int[] nums) {
BitSet bitSet = new BitSet(nums.length+1);
for (int num : nums) {
if (num >= 0 && num < nums.length+1) {
bitSet.set(num);
}
}
int i = bitSet.nextClearBit(0);
if(i==0){
return bitSet.nextClearBit(1);
}
return i;
}