Couples Holding Hands LeetCode solution in Python
1class Solution:2def minSwapsCouples(self, row: List[int]) -> int:3loc = {x: i for i, x in enumerate(row)}4ans = 05for i in range(0, len(row), 2):6p = row[i] - 1 if row[i] & 1 else row[i] + 17if row[i + 1] != p:8ans += 19ii = loc[p]10loc[row[i + 1]], loc[row[ii]] = (11loc[row[ii]],12loc[row[i + 1]],13) # swap mappings14row[i + 1], row[ii] = row[ii], row[i + 1] # swap values15return ans