码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-785-判断二分图

时间:2020-07-17 14:14:05      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:list   alt   bsp   和我   style   inf   for   code   rap   

题目描述:

技术图片

 

 技术图片

 

 技术图片

 

 第一次提交:通过76/78  留坑

class Solution:
    def isBipartite(self, graph: List[List[int]]) -> bool:
        dic = {}
        l = []
        for i in range(len(graph)):
            if graph[i] != []:
                dic[i] = 0
                l.append(i)
                break
        tmp = 1
        while l:
            print(l)
            for i in range(len(l)):
                for node in graph[l.pop(0)]:
                    if node not in dic:
                        dic[node] = tmp
                        l.append(node)
                    elif dic[node] != tmp:
                        return False
            tmp = 0 if tmp == 1 else 1
        return True

改:DFS O(N+M) O(N)

class Solution:
    def isBipartite(self, graph) -> bool:
        dye = defaultdict(int)
        def DFS(s, color):
            dye[s] = color
            for i in graph[s]:
                # 已经上色了,如果和我一样表示不行
                if dye[i] == color:
                    return False
                # 没上色就染成和我相反的
                if not dye[i]:
                    if not DFS(i, -color):
                        return False
            return True
        for i in range(len(graph)):
            # 没被染色的就继续染色
            if not dye[i]:
                if not DFS(i, 1):
                    return False
        return True

 

leetcode-785-判断二分图

标签:list   alt   bsp   和我   style   inf   for   code   rap   

原文地址:https://www.cnblogs.com/oldby/p/13328968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!