Arrays - Minimum Swaps 2 [M]
Sample Input 0
4
4 3 1 2
Sample Output 0
3
Explanation 0
Given array
After swapping we get
After swapping we get
After swapping we get
So, we need a minimum of swaps to sort the array in ascending order.
static int minimumSwaps(int[] arr) {
int arrLen = arr.length;
int count = 0;
int [] sarr = arr.clone();
Arrays.sort(sarr);
for (int i = 0; i < arrLen; i++) {
if (arr[i] != sarr[i]) {
count++;
for (int j = i + 1; j < arrLen; j++) {
if (arr[j] == sarr[i] ) {
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
break;
}
}
}
}
return count;
}
留言
張貼留言