Minimum Difference Between Largest and Smallest Value in Three Moves

MediumArrayGreedySorting

Solution

export function minDifference(nums: number[]): number {
  const n = nums.length;
  if (n < 5) {
    return 0;
  }
  nums.sort((a, b) => a - b);
  return Math.min(
    nums[n - 1] - nums[3],
    nums[n - 2] - nums[2],
    nums[n - 3] - nums[1],
    nums[n - 4] - nums[0],
  );
}

Complexity

  • Time: O(N * logN)
  • Space: O(N) (정렬 알고리즘에 따른 공간 복잡도)