CodeKata Shortest Unsorted Continuous Subarray


質問リンク


Shortest Unsorted Continuous Subarray - LeetCode

問題を解く


与えられたアレイで連続するサブアレイを並べ替え、昇順に並べ替える場合、サブアレイの最小長を求める問題.
与えられた配列を並べ替え,新しい配列を形成し比較した.配列の始点から異なる部分と配列の末尾から異なるインデックスの差を求める.

マイコード

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