[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
}