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))
相关推荐
疯狂打码的少年5 分钟前
【Day 6 Java转Python】字符串处理的“降维打击”
java·开发语言·python
2301_7644413314 分钟前
家国同构模型:计算社会学的创新探索
python·数学建模
汀、人工智能23 分钟前
[特殊字符] 第103课:单词搜索II
数据结构·算法·均值算法·前缀树·trie·单词搜索ii
ShCDNay1 小时前
Python核心底层知识(个人记录)
开发语言·python
来自远方的老作者1 小时前
第7章 运算符-7.2 赋值运算符
开发语言·数据结构·python·赋值运算符
wanderist.1 小时前
算法模板-字符串
数据结构·算法·哈希算法
xiaoye-duck1 小时前
《算法题讲解指南:动态规划算法--子序列问题》--29.最长递增子序列的个数,30.最长数对链,31.最长定差子序列
c++·算法·动态规划
Yzzz-F1 小时前
Problem - 2180D - Codeforces
算法
moonsea02031 小时前
2023.9.25
算法
汀、人工智能1 小时前
[特殊字符] Python基础语法速成教程
算法·链表·均值算法·哈希表·lru缓存·python基础语法速成教程