Day27力扣打卡

打卡记录

情侣牵手(并查集)

链接

cpp 复制代码
class Solution:
    def minSwapsCouples(self, row: List[int]) -> int:
        def find(x: int) -> int:
            if p[x] != x:
                p[x] = find(p[x])
            return p[x]

        n = len(row) >> 1
        p = list(range(n))
        for i in range(0, len(row), 2):
            a, b = row[i] >> 1, row[i + 1] >> 1
            p[find(a)] = find(b)
        return n - sum(i == find(i) for i in range(n))
相关推荐
2401_86762398几秒前
HTML5中SVG解析器原理及手动构建矢量字符串
jvm·数据库·python
昵称小白1 分钟前
图论专题(上)
算法·深度优先·图论
大大杰哥2 分钟前
leetcode hot100(2)双指针,滑动窗口
数据结构·算法·leetcode
老纪3 分钟前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python
weixin_459753943 分钟前
Vue.js响应式shallowReadonly实现对象属性的一层状态保护
jvm·数据库·python
m0_470857643 分钟前
uni-app怎么实现拖拽调整顺序 uni-app可拖动格子布局实现【技巧】
jvm·数据库·python
dFObBIMmai5 分钟前
MySQL如何利用存储过程封装权限_通过DEFINER与INVOKER模式控制
jvm·数据库·python
风筝在晴天搁浅5 分钟前
LeetCode CodeTop 113.路径总和Ⅱ
算法·leetcode
m0_748554815 分钟前
如何用 stopPropagation 阻止事件冒泡防止触发父级回调
jvm·数据库·python
2301_812539676 分钟前
SQL如何基于窗口函数实现复杂分层 DENSE_RANK应用
jvm·数据库·python