[LeetCode] 581. Shortest Unsorted Continuous Subarray

Chobby·약 22시간 전

LeetCode

목록 보기
1063/1063

😎풀이

  1. 좌 -> 우 방향으로 탐색하며, 오름차 순 정렬되지 않는 부분의 가장 우측 인덱스 탐색
  2. 우 -> 좌 방향으로 탐색하며, 내림차 순 정렬되지 않는 부분의 가장 좌측 인덱스 탐색
  3. 문제가 되는 인덱스 길이 반환
function findUnsortedSubarray(nums: number[]): number {
    const n = nums.length
    let left = -1
    let right = -1
    let max = -Infinity
    let min = Infinity
    for(let i = 0; i < n; i++) {
        if(nums[i] < max) {
            right = i
        } else {
            max = nums[i]
        }
    }
    for(let i = n - 1; i >= 0; i--) {
        if(nums[i] > min) {
            left = i
        } else {
            min = nums[i]
        }
    }
    if(right === -1) return 0
    return right - left + 1
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글