Given an integer array nums of length n that may contain duplicate values, you may perform swaps where you choose any two indices i and j and swap nums[i] and nums[j].
Return the minimum number of swaps required to reorder nums into non-decreasing order.
nums
.
nums
sorted in non-decreasing order.
1 <= n <= 2 * 10^5
-10^9 <= nums[i] <= 10^9
nums = [2, 1, 2]
→ sorted form is
[1, 2, 2]
, answer
1
(swap indices 0 and 1).
nums = [1, 5, 1, 5]
→ answer
1
(swap the two middle elements to get
[1,1,5,5]
).