AlgoMaster Logo

First Missing Positive

nums=[3, 4, -1, 1]
1class Solution {
2    public int firstMissingPositive(int[] nums) {
3        int n = nums.length;
4
5        // Place numbers in correct positions
6        for (int i = 0; i < n; i++) {
7            // Swap numbers to their correct positions
8            while (nums[i] > 0 && nums[i] <= n &&
9                   nums[nums[i] - 1] != nums[i]) {
10                int temp = nums[nums[i] - 1];
11                nums[nums[i] - 1] = nums[i];
12                nums[i] = temp;
13            }
14        }
15
16        // Find first missing positive number
17        for (int i = 0; i < n; i++) {
18            if (nums[i] != i + 1) {
19                return i + 1;
20            }
21        }
22
23        return n + 1;
24    }
25}
0 / 27
34-110123