[Leetcode] 41. First Missing Positive

Seongjun Lee·2022년 2월 21일
0

[Leetcode] - Problem

목록 보기
41/43
post-thumbnail

Problem

문제링크

정렬되지 않은 숫자 배열에서 가장 작은 배열에 없는 양의 수를 구하여라.

Solution

  1. 배열의 양의 숫자만 남도록, 오름차순으로 정렬한다.
  2. 제일 처음 요소가 1이 아니라면 1을 리턴
  3. cnt값을 1로 시작해서 배열을 순회하면서 cnt값도 함께 올려주면서 체크한다.
    • 이때 중복된값이 연속으로 등장할수 있는 조건을 추가해준다.

JS Code

/**
 * @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
}
profile
Hi there 👋

0개의 댓글