Minimum Swaps 2 HackerRank solution: Looking for Minimum Swaps 2 solution for Hackerrank problem? Get solution with source code and detailed explainer video

You are given an unordered array consisting of consecutive integers \epsilon [1, 2, 3, …, n] without any duplicates. You are allowed to swap any two elements. Find the minimum number of swaps required to sort the array in ascending order.
Example
arr = [7,1,3,2,4,5,6] 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.Go to problem statement

## Explanation Video:

Mentor: Satyendra Jaiswal
Langauge: Python

## Source Code:  for triplets function


# Complete the minimumSwaps function below.
def minimumSwaps(arr):
count=0
i=0
while i< len(arr):
index=arr[i]-1   # n= arr[i] index=n-1=arr[i]-1
# print('bef=',arr,i)
if arr[i]!=arr[index]: #n!=[n-1]
arr[i],arr[index]=arr[index],arr[i]
count+=1
else:
i+=1
# print('aft=',arr)
return count

coming soon…
coming soon…

## Full Source Code: Minimum Swaps 2 HackerRank Solution


#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the minimumSwaps function below.
def minimumSwaps(arr):
count=0
i=0
while i< len(arr):
index=arr[i]-1   # n= arr[i] index=n-1=arr[i]-1
# print('bef=',arr,i)
if arr[i]!=arr[index]: #n!=[n-1]
arr[i],arr[index]=arr[index],arr[i]
count+=1
else:
i+=1
# print('aft=',arr)
return count
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

n = int(input())

arr = list(map(int, input().rstrip().split()))

res = minimumSwaps(arr)

fptr.write(str(res) + '\n')

fptr.close()


coming soon…
coming soon…