class Solution {
public:
void DFS(int node,vector<vector<int>>&adj,vector<int>&colors,int cc){
colors[node]=cc;
for(int x:adj[node]){
if(!colors[x])DFS(x,adj,colors,(cc==2)?1:2);
}
}
bool isBipartite(vector<vector<int>>& graph) {
int n =graph.size();
vector<int>colors(n,0);
for(int i =0;i<n;i++){
if(!colors[i])DFS(i,graph,colors,2);
}
for(int i=0;i<n;i++){
for(int x:graph[i]){
if(colors[i]==colors[x])return false;
}
}
return true;
}
};
No comments:
Post a Comment