class Solution {
public int firstMissingPositive(int[] nums) {
boolean[] exist = new boolean[nums.length + 2];
for (int i = 0; i < nums.length; i++) {
if (nums[i] > 0 && nums[i] < exist.length) {
exist[nums[i]] = true;
}
}
for (int i = 1; i < exist.length; i++) {
if (!exist[i]) {
return i;
}
}
return -1;
}
}