Minimum Swaps 2 Solution - The Coding Shala
Home >> Programming Questions >> Minimum Swaps 2
Minimum Swaps 2 Solution
In this post, you will learn how to solve the Minimum Swaps 2 Problem and its solution in Java.
You are given an unordered array consisting of consecutive integers [1, 2, 3, ..., n] without any duplicates. You are allowed to swap any two elements. You need to find the minimum number of swaps required to sort the array in ascending order.
For example, given the array arr = [7,1,3,2,4,5,6] we perform the following steps:
i arr swap (indices)
0 [7, 1, 3, 2, 4, 5, 6] swap (0,3)
1 [2, 1, 3, 7, 4, 5, 6] swap (0,1)
2 [1, 2, 3, 7, 4, 5, 6] swap (3,4)
3 [1, 2, 3, 4, 7, 5, 6] swap (4,5)
4 [1, 2, 3, 4, 5, 7, 6] swap (5,6)
5 [1, 2, 3, 4, 5, 6, 7]
It took 5 swaps to sort the array.
Minimum Swaps 2 Java Program
All the given elements of the array are from 1 to n and there are duplicates so we can solve this problem by comparing elements with their original position in the sorted array.
Java Program:
public class Solution { // Complete the minimumSwaps function below. static int minimumSwaps(int[] arr) { int count = 0; for(int i=0;i<arr.length;i++){ if(arr[i]==i+1) continue; count++; int tmp = arr[i]; arr[i] = arr[tmp-1]; arr[tmp-1] = tmp; i--; } return count; } }
Other Posts You May Like
- New Year Chaos
- Fibonacci Series
- LeetCode Contains Duplicate
- LeetCode Bulb Switcher Solution
- Min Steps in infinite Grid
Comments
Post a Comment