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

LeetCode785. 判断二分图

作者: 24K纯帅豆 | 来源:发表于2019-08-23 22:45 被阅读0次

1、题目链接

https://leetcode-cn.com/problems/is-graph-bipartite/

2、解题思路

这道题的意思是,给你一个无向图(二维数组),这个无向图一开始我看的有点懵,是按照他的规则来给的,比如示例1:

[[1,3], [0,2], [1,3], [0,2]]

他这个意思是第0个点连着1和3,第1个点连着0和2,第2个点连着1和3,第3个点连着0和2

然后让你判断这个无向图是否能分成一个二分图,那何为二分图呢?他也告诉你了,就是把当前的图的节点拆分开成两个子集合,并且每条边的两个节点要分别属于那两个子集合,咋一眼看起来好像就是将边的节点分开,然后最后看某个点是否不能被分开,就好比把节点分成两类,如果某个节点既被分到第一类又被分到第二类那么就会冲突,就不符合条件,代码的话还是采用深搜来写,之前好像也有一道题是这样分的:

代码

public boolean isBipartite(int[][] graph) {
    if (null == graph || graph.length < 2) {
        return false;
    }
    int[] isInGroup = new int[graph.length];
    int currentGroup = 1;
    Arrays.fill(isInGroup, currentGroup);
    for (int i = 0; i < graph.length; i++) {
        if (isInGroup[i] == 1) {
            if (!dfs(i, graph, isInGroup, currentGroup)) {
                return false;
            }
        }
    }
    return true;
}
public boolean dfs(int pos, int[][] graph, int[] isInGroup, int currentGroup) {
    if (isInGroup[pos] != 1) {
        return isInGroup[pos] == currentGroup;
    }
    isInGroup[pos] = currentGroup;
    for (int index : graph[pos]) {
        if (!dfs(index, graph, isInGroup, -1 * currentGroup)) {
            return false;
        }
    }
    return true;
}

结果

WX20190823-221318@2x.png

相关文章

  • LeetCode785. 判断二分图

    1、题目链接 https://leetcode-cn.com/problems/is-graph-bipartit...

  • LeetCode785.判断二分图

    给定一个无向图graph,当这个图为二分图时返回true。 如果我们能将一个图的节点集合分割成两个独立的子集A和B...

  • 二分图基础知识

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

  • 785. 判断二分图

    785. 判断二分图 染色法

  • LeetCode 785. 判断二分图

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

  • 染色判断二分图

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

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

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

  • LeetCode 785. 判断二分图

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

  • 785. 判断二分图

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

  • 二分匹配 专题整理

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

网友评论

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

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