2023每日刷题(二十七)
Leetcode—765.情侣牵手
并查集+置换环思路
参考自ylb
实现代码
class Solution {
public:int minSwapsCouples(vector<int>& row) {int n = row.size();int len = n / 2;vector<int> p(len);iota(p.begin(), p.end(), 0);function<int(int)> find = [&](const int &x) {if(x != p[x]) {p[x] = find(p[x]);}return p[x]; };for(int i = 0; i < n; i += 2) {int left = row[i] / 2;int right = row[i + 1] / 2;p[find(left)] = find(right);}int ans = len;for(int i = 0; i < len; i++) {ans -= i == find(i);}return ans;}
};
运行结果
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!