[LeetCode] 665. Non-decreasing Array

Chobby·2026년 6월 12일

LeetCode

목록 보기
1089/1104

😎풀이

  1. 중복 카운트 정의
  2. nums 순회하며 내림차 순이 되는 경우 탐색
    2-1. nums[i - 1] > nums[i + 1]인 경우, 다음 인덱스 값을 nums[i]만큼 높여 오름차 순을 만듦
    2-2. nums[i - 1] <= nums[i + 1]인 경우, 이전 값을 nums[i]로 조정하지만 이미 지나온 길이므로 갱신은 하지 않음
  3. 한번 혹은 그 이하의 조정으로 오름차 순을 만들 수 있는지 여부 반환
function checkPossibility(nums: number[]): boolean {
    let decCount = 0
    for(let i = 0; i < nums.length - 1; i++) {
        const next = nums[i + 1]
        if(nums[i] <= next) continue
        const prev = nums[i - 1] ?? 0
        decCount++
        if(prev > next) {
            nums[i + 1] = nums[i]
        }
        if(decCount >= 2) return false
    }
    return true
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글