Couples Holding Hands LeetCode solution in Python

1
class Solution:
2
def minSwapsCouples(self, row: List[int]) -> int:
3
loc = {x: i for i, x in enumerate(row)}
4
ans = 0
5
for i in range(0, len(row), 2):
6
p = row[i] - 1 if row[i] & 1 else row[i] + 1
7
if row[i + 1] != p:
8
ans += 1
9
ii = loc[p]
10
loc[row[i + 1]], loc[row[ii]] = (
11
loc[row[ii]],
12
loc[row[i + 1]],
13
) # swap mappings
14
row[i + 1], row[ii] = row[ii], row[i + 1] # swap values
15
return ans

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0