[Leetcode] 41. First Missing Positive
Problem
정렬되지 않은 숫자 배열에서 가장 작은 배열에 없는 양의 수를 구하여라.
Solution
- 배열의 양의 숫자만 남도록, 오름차순으로 정렬한다.
- 제일 처음 요소가 1이 아니라면 1을 리턴
cnt값을 1로 시작해서 배열을 순회하면서 cnt값도 함께 올려주면서 체크한다.- 이때 중복된값이 연속으로 등장할수 있는 조건을 추가해준다.
JS Code
js
/**
* @param {number[]} nums
* @return {number}
*/
var firstMissingPositive = function (nums) {
const positiveNums = nums.sort((a, b) => a - b).filter((item) => 0 < item)
let cnt = 1
if (positiveNums[0] !== 1) return 1
for (const positiveNum of positiveNums) {
if (cnt === positiveNum) continue
if (++cnt === positiveNum) continue
return cnt
}
return cnt+1
}