Faaez Razeen

Minimum Adjacent Swaps to Make a Valid Array

  • 2 min read
  • Array
  • LC-Medium

3 years ago

Solution

TimeSpaceExplanation
O(n)O(1)
def minimumSwaps(self, nums: List[int]) -> int: n = len(nums) min_ele = min(nums) max_ele = max(nums) for max_idx in range(n - 1, -1, -1): if nums[max_idx] == max_ele: break for min_idx in range(n): if nums[min_idx] == min_ele: break ans = (n - max_idx - 1) + min_idx if min_idx > max_idx: ans -= 1 return ans