美文网首页
785. 判断二分图

785. 判断二分图

作者: wzNote | 来源:发表于2022-11-13 00:06 被阅读0次

题目链接

难度:中等       类型: 二分图、dfs、bfs


示例

解题思路


从任意一个点出发,标颜色(红或绿),当一个节点被标为红色,与其连同的节点将被标为绿色

如果在涂色的过程中,发现一个节点已经被涂过色,且和当前准备涂的颜色不一致,则说明无法二分

代码实现

class Solution:
    def isBipartite(self, graph: List[List[int]]) -> bool:
        
        NOCOLOR, RED, GREEN = 0, 1, 2
        n = len(graph)
        colors = [NOCOLOR] * n

        def dfs(nodes, color):
            next_color = RED if color == GREEN else GREEN
            for node in nodes:
                if colors[node] == NOCOLOR:
                    colors[node] = next_color
                    if not dfs(graph[node], next_color):
                        return False
                elif colors[node] == next_color:
                    continue
                else:
                    return False
            return True

        for i in range(n):
            if colors[i] == NOCOLOR:
                colors[i] = RED
                if not dfs(graph[i], RED):
                    return False
        return True

相关文章

  • 785. 判断二分图

    785. 判断二分图 染色法

  • 二分图基础知识

    前言:总结一下二分图相关的知识点 0X00 基础 判断是不是二分图 785. 判断二分图 DFS 遍历所有节点,遍...

  • LeetCode 785. 判断二分图

    题目 785. 判断二分图 描述 给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节...

  • LeetCode 785. 判断二分图

    1、题目 785. 判断二分图 2、题解 这道题目乍看之下并不难,不过写起来还是有点蛋疼。首先,二分图是指你把点分...

  • 785. 判断二分图

    题目链接[https://leetcode.cn/problems/is-graph-bipartite/] 难度...

  • 785. 判断二分图(Python)

    难度:★★★☆☆类型:图方法:深度优先搜索 力扣链接请移步本题传送门[https://leetcode-cn.co...

  • 染色判断二分图

    vector a;a.push_back(1);a.push_back(2);a.push_back(3);->a...

  • 二分图染色(判断是否二分图)

    二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(...

  • 二分匹配 专题整理

    二分匹配学习记录 参考资料 二分图讲解及匈牙利模板 HDU 2444 题意 给出图,求是否二分图,和二分图的最大匹...

  • 【算法篇】二分图匹配之匈牙利算法

    二分图匹配,自然要先从定义入手,那么二分图是什么呢? 二分图: 二分图又称作二部图,是图论中的一种特殊模型。 设G...

网友评论

      本文标题:785. 判断二分图

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