First Missing Positive
JavaScript
hard
30 mins
Given an unsorted integer array nums, return the smallest positive integer that is not present in nums. You must implement an algorithm that runs in O(n) time and uses O(1) auxiliary space.
Examples
Example 1:
Input: nums = [1,2,0] Output: 3 Explanation: The numbers in the range [1,2] are all in the array.
Example 2:
Input: nums = [3,4,-1,1] Output: 2 Explanation: 1 is in the array but 2 is missing.
Example 3:
Input: nums = [7,8,9,11,12] Output: 1 Explanation: The smallest positive integer 1 is missing.
Constraints:
1 <= nums.length <= 10^5 -2^31 <= nums[i] <= 2^31 - 1
Function Signature:
function firstMissingPositive(nums) { // Your code here }
Test Cases:
- Base cases: nums = [1] → 2, nums = [2] → 1, nums = [0] → 1
- Simple cases: nums = [1,2,0] → 3, nums = [3,4,-1,1] → 2
- Edge cases: nums = [1,2,3,4] → 5, nums = [7,8,9,11,12] → 1
- Complex cases: nums = [1,1,2,2,3,3] → 4, nums = [-1,-2,-3] → 1
- Mixed cases: nums = [0,1,2,3,5,6] → 4, nums = [1,2,3,5,6,7] → 4
Notes:
- Base cases: nums = [1] → 2, nums = [2] → 1, nums = [0] → 1
- Simple cases: nums = [1,2,0] → 3, nums = [3,4,-1,1] → 2
- Edge cases: nums = [1,2,3,4] → 5, nums = [7,8,9,11,12] → 1
- Complex cases: nums = [1,1,2,2,3,3] → 4, nums = [-1,-2,-3] → 1
- Mixed cases: nums = [0,1,2,3,5,6] → 4, nums = [1,2,3,5,6,7] → 4
Companies:
google
adobe
Solve Similar questions 🔥
Want to upskill? Explore our courses!
Namaste DSA
Master DSA from scratch with numerous problems, and expert guidance.
Namaste React
Wanna dive deep into React and become Frontend Expert? Learn with me now!
Namaste Frontend System Design
The most comprehensive and detailed course for frontend system design.
Namaste Node.js
Wanna dive deep into Node.js? Enroll into `Namaste Node.js` now!
