We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Minimum Swaps 2
- Discussions
Minimum Swaps 2
Minimum Swaps 2
+ 0 comments Java solution:
static int minimumSwaps(int[] arr) { int swaps = 0; for (int i = 0; i < arr.length; i++) { while (arr[i] != i + 1) { int temp = arr[arr[i] - 1]; arr[arr[i] - 1] = arr[i]; arr[i] = temp; swaps++; } } return swaps; }
+ 0 comments My solution in javascript
function minimumSwaps(arr) { let sortedArray = arr let numberPositions = {} let numberOfSwaps = 0 arr.forEach((n,i)=>{ numberPositions[n] = i }) arr.forEach((_,i)=>{ if (sortedArray[i] != i+1){ let temp = sortedArray[i] sortedArray[i] = sortedArray[numberPositions[i+1]] sortedArray[numberPositions[i+1]] = temp numberPositions[temp] = numberPositions[i+1] numberPositions[i+1] = i numberOfSwaps+=1 } }) return numberOfSwaps }
+ 0 comments This is my solution in Go
func minimumSwaps(arr []int32) int32 { swaps := int32(0) i := 0 for i < len(arr) { if arr[i] != int32(i+1) { arr[arr[i]-1], arr[i] = arr[i], arr[arr[i]-1] swaps++ } else { i++ } } return swaps }
+ 0 comments C solution
int minimumSwaps(int arr_count, int* arr) { int swaps = 0; for (int i = 1; i <= arr_count; i++) { if (arr[i-1] != i) { for (int j = i; j < arr_count; j++) { if (i == arr[j]) { int temp = arr[i-1]; arr[i-1] = arr[j]; arr[j] = temp; swaps++; break; } } } } return swaps; }
+ 0 comments def minimumSwaps(arr): num_swap = 0 ordred = sorted(arr) for i in range(len(arr)): if arr == ordred: break if ordred[i] == arr[i]: continue else: j = arr.index(ordred[i]) arr[i], arr[j] = arr[j], arr[i] num_swap += 1 return num_swap
Load more conversations
Sort 2411 Discussions, By:
Please Login in order to post a comment