Class Solution
-
- All Implemented Interfaces:
public final class Solution
785 - Is Graph Bipartite?\.
Medium
There is an undirected graph with
n
nodes, where each node is numbered between0
andn - 1
. You are given a 2D arraygraph
, wheregraph[u]
is an array of nodes that nodeu
is adjacent to. More formally, for eachv
ingraph[u]
, there is an undirected edge between nodeu
and nodev
. The graph has the following properties:There are no self-edges (
graph[u]
does not containu
).There are no parallel edges (
graph[u]
does not contain duplicate values).If
v
is ingraph[u]
, thenu
is ingraph[v]
(the graph is undirected).The graph may not be connected, meaning there may be two nodes
u
andv
such that there is no path between them.
A graph is bipartite if the nodes can be partitioned into two independent sets
A
andB
such that every edge in the graph connects a node in setA
and a node in setB
.Return
true
if and only if it is bipartite.Example 1:
Input: graph = \[\[1,2,3],0,2,0,1,3,0,2]
Output: false
Explanation: There is no way to partition the nodes into two independent sets such that every edge connects a node in one and a node in the other.
Example 2:
Input: graph = \[\[1,3],0,2,1,3,0,2]
Output: true
Explanation: We can partition the nodes into two sets: {0, 2} and {1, 3}.
Constraints:
graph.length == n
1 <= n <= 100
0 <= graph[u].length < n
0 <= graph[u][i] <= n - 1
graph[u]
does not containu
.All the values of
graph[u]
are unique.If
graph[u]
containsv
, thengraph[v]
containsu
.
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
Modifier and Type Method Description final Boolean
isBipartite(Array<IntArray> graph)
-
-
Method Detail
-
isBipartite
final Boolean isBipartite(Array<IntArray> graph)
-
-
-
-