当前位置:首页 > 编程笔记 > 正文
已解决

Leetcode—765.情侣牵手【困难】

来自网友在路上 168868提问 提问时间:2023-11-12 17:51:44阅读次数: 68

最佳答案 问答题库688位专家为你答疑解惑

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;}
};

运行结果

在这里插入图片描述
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Leetcode—765.情侣牵手【困难】":http://eshow365.cn/6-38287-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!