765. 情侶牽手
n 對情侶坐在連續排列的 2n 個座位上,想要牽到對方的手。 計算最少交換座位的次數,以便每對情侶可以並肩坐在一起。 一次交換可選擇任意兩人,讓他們站起來交換座位。
人和座位用0
到2n-1
的整數表示,情侶們按順序編號,第一對是(0, 1)
,第二對是(2, 3)
,以此類推,最後一對是(2n-2, 2n-1)
。
這些情侶的初始座位row[i]
是由最初始坐在第 i 個座位上的人決定的。
示例 1:
輸入: row = [0, 2, 1, 3]
輸出: 1
解釋: 我們只需要交換row[1]和row[2]的位置即可。
示例 2:
輸入: row = [3, 2, 0, 1]
輸出: 0
解釋: 無需交換座位,所有的情侶都已經可以手牽手了。
說明:
len(row)
是偶數且數值在[4, 60]
範圍內。
可以保證row
是序列0...len(row)-1
的乙個全排列。
思路:
class solution
void union(int a, int b, int& sum)
}int minswapscouples(vector& row)
return n / 2 - sum;
}};
765 情侶牽手
n 對情侶坐在連續排列的 2n 個座位上,想要牽到對方的手。計算最少交換座位的次數,以便每對情侶可以並肩坐在一起。一次交換可選擇任意兩人,讓他們站起來交換座位。人和座位用0到2n 1的整數表示,情侶們按順序編號,第一對是 0,1 第二對是 2,3 以此類推,最後一對是 2n 2,2n 1 這些情侶的...
765 情侶牽手
n 對情侶坐在連續排列的 2n 個座位上,想要牽到對方的手。計算最少交換座位的次數,以便每對情侶可以並肩坐在一起。一次交換可選擇任意兩人,讓他們站起來交換座位。人和座位用 0 到 2n 1 的整數表示,情侶們按順序編號,第一對是 0,1 第二對是 2,3 以此類推,最後一對是 2n 2,2n 1 使...
765 情侶牽手
n 對情侶坐在連續排列的 2n 個座位上,想要牽到對方的手。計算最少交換座位的次數,以便每對情侶可以並肩坐在一起。一次交換可選擇任意兩人,讓他們站起來交換座位。人和座位用0到2n 1的整數表示,情侶們按順序編號,第一對是 0,1 第二對是 2,3 以此類推,最後一對是 2n 2,2n 1 這些情侶的...