LeetCode - 785. Is Graph Bipartite?
Posted antonliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode - 785. Is Graph Bipartite?相关的知识,希望对你有一定的参考价值。
判断一个给定图是不是二分图. 题目提供一个用二维数组存储的邻接表. 常规的二分图判断,点着色.
注意要将图存入类中,因为dfs需要访问图中的点.
1 class Solution 2 private int[][] graph; 3 private boolean[] visited; 4 private int[] colors; 5 6 public boolean isBipartite(int[][] graph) 7 this.graph = graph; 8 int V = graph.length; 9 visited = new boolean[V]; 10 colors = new int[V]; 11 12 for (int v = 0; v < V; v++) 13 if (!visited[v]) 14 if(!dfs(v, 0)) 15 return false; 16 return true; 17 18 19 private boolean dfs(int v, int color) 20 visited[v] = true; 21 colors[v] = color; 22 for (int w : graph[v]) 23 if (!visited[w]) 24 if (!dfs(w, 1 - color)) 25 return false; 26 27 else if (colors[v] == colors[w]) 28 return false; 29 30 return true; 31 32
以上是关于LeetCode - 785. Is Graph Bipartite?的主要内容,如果未能解决你的问题,请参考以下文章
[leetcode]785. Is Graph Bipartite? [bai'pɑrtait] 判断二分图
LWC 72: 785. Is Graph Bipartite?