CodeKata Shortest Unsorted Continuous Subarray

문제 링크

Shortest Unsorted Continuous Subarray - LeetCode

문제 풀이

주어진 배열에서 연속된 subarray를 정렬하여 오름차순으로 만들 때 subarray의 최소 길이를 구하는 문제이다.

주어진 배열을 정렬하여 새로운 배열을 만들어서 비교하였다. 배열의 시작점부터 다르기 시작한 부분과 배열의 마지막에서부터 다르기 시작한 인덱스의 차를 구한다.

나의 코드

var findUnsortedSubarray = function (nums) {
  let lo = -1,
    hi;
  const sorted = [...nums].sort((a, b) => a - b);
  for (let i = 0; i < nums.length; ++i) {
    if (nums[i] !== sorted[i]) {
      lo = i;
      break;
    }
  }
  if (lo === -1) return 0;
  for (let i = nums.length - 1; i >= 0; --i) {
    if (nums[i] !== sorted[i]) {
      hi = i;
      break;
    }
  }
  return hi - lo + 1;
};

좋은 웹페이지 즐겨찾기