博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode题解(1101):彼此熟识的最早时间(Python)
阅读量:1904 次
发布时间:2019-04-26

本文共 1526 字,大约阅读时间需要 5 分钟。

题目:(中等)

标签:并查集、排序

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N ) O(N) O(N) O ( N ) O(N) O(N) 48ms (100.00%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class DSU:    def __init__(self, n: int):        self._n = n        self._array = [i for i in range(n)]        self._size = [1] * n        self._group_num = n    def find(self, i: int) -> int:        """查询i所在的连通分支:O(1)"""        if self._array[i] != i:            self._array[i] = self.find(self._array[i])        return self._array[i]    def union(self, i: int, j: int) -> bool:        """合并i和j所属的连通分支:O(1)"""        i, j = self.find(i), self.find(j)        if i != j:            self._group_num -= 1            if self._size[i] >= self._size[j]:                self._array[j] = i                self._size[i] += self._size[j]            else:                self._array[i] = j                self._size[j] += self._size[i]            return True        else:            return False    def is_connected(self, i: int, j: int) -> bool:        return self.find(i) == self.find(j)    @property    def group_num(self):        """计算连通分支数量:O(1)"""        return self._group_num    @property    def max_group_size(self):        """计算最大连通分支包含的数量:O(N)"""        import collections        return max(collections.Counter(self._array).values())class Solution:    def earliestAcq(self, logs: List[List[int]], n: int) -> int:        logs.sort()        dsu = DSU(n)        for date, a, b in logs:            dsu.union(a, b)            if dsu.group_num == 1:                return date        return -1

转载地址:http://dxkcf.baihongyu.com/

你可能感兴趣的文章
干货!利用微信生态推广小程序商城
查看>>
爱用建站智能推送一键完成全网分发,你也可以篇篇10w+
查看>>
微信小程序免费申请攻略
查看>>
内容创作新款工具“爱用博客系统”来啦
查看>>
免费网站制作攻略
查看>>
如何利用线下门店绿色通道快捷注册小程序
查看>>
微信小程序构建新经济圈
查看>>
爱用建站快速注册支付宝小程序流程
查看>>
爱用建站微信小程序快速上线攻略
查看>>
智能表单一键分发,快速收集信息
查看>>
爱用建站电商系统助力企业线上营销
查看>>
做完微信小程序的小白,现在开始赚钱了
查看>>
小程序掘金时代
查看>>
如何运营好小程序让更多的顾客成为自己的客户
查看>>
opencv编译运行demo碰到的问题
查看>>
opencv中imread读取二值图
查看>>
UAT测试和SIT测试
查看>>
adb常用命令
查看>>
线程死锁、数据库死锁、慢sql、长事务等性能问题
查看>>
我奶奶都能懂java泛型
查看>>