美文网首页
leetcode 310 最小高度树 python

leetcode 310 最小高度树 python

作者: DaydayHoliday | 来源:发表于2019-05-15 15:26 被阅读0次

评论区说容易超时,就使用了字典和最小堆来进行加速

import heapq
class Solution(object):
    def findMinHeightTrees(self, n, edges):
        if n==1:
            return [0]
        dict_nei={}
        for e in edges:
            dict_nei[e[0]] = [e[1]] if e[0] not in dict_nei else dict_nei[e[0]]+[e[1]]
            dict_nei[e[1]] = [e[0]] if e[1] not in dict_nei else dict_nei[e[1]]+[e[0]]
        hq=[]
        for nei in dict_nei:
            heapq.heappush(hq,(len(dict_nei[nei]),nei,dict_nei[nei]))
        while len(dict_nei.keys())>=3:
            node_neis=[]
            while hq[0][0]==1:
                _,node,neis=heapq.heappop(hq)
                del dict_nei[node]
                node_neis.append((node,neis))
            for node,neis in node_neis:
                for nei in neis:
                    dict_nei[nei].remove(node)
                    heapq.heappush(hq,(len(dict_nei[nei]),nei,dict_nei[nei]))
        return dict_nei.keys()

相关文章

  • 310. 最小高度树 - 每日一题

    310. 最小高度树 - 力扣(LeetCode) (leetcode-cn.com)[https://leetc...

  • leetcode 310 最小高度树 python

    评论区说容易超时,就使用了字典和最小堆来进行加速

  • (topsort)310. 最小高度树

    310. 最小高度树[https://leetcode-cn.com/problems/minimum-heigh...

  • LeetCode310.最小高度树

    对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称...

  • 310. 最小高度树

    对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称...

  • 310. 最小高度树

    题目描述 树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。...

  • [中等]310. 最小高度树

    解题思路需要反复思考

  • LeetCode题解之最小高度树

    最小高度树 题目描述 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。...

  • 2020-10-21:最小高度树

    310:最小高度树 题目:对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的...

  • 最小高度树

    题目: 题目的理解: 看到题目的时候还是觉得很奇怪的,觉得有很多很多可能性啊。当去搜索了二叉搜索树的定义后明白了思...

网友评论

      本文标题:leetcode 310 最小高度树 python

      本文链接:https://www.haomeiwen.com/subject/mawpaqtx.html