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