主页 > 创业  > 

力扣785.判断二分图

力扣785.判断二分图
力扣785. 判断二分图 题目

题目解析及思路

题目要求将所有节点分成两部分,每条边的两个端点都必须在不同集合中

二分图:BFS/DFS/并查集

因为图不一定联通,所以枚举所有点都做bfs(如果没联通的话)

代码 class Solution { public: bool isBipartite(vector<vector<int>>& graph) { int n = graph.size(); vector<int> st(n,0); for(int i=0;i<n;i++){ if(st[i] == 0){ queue<int> q; q.push(i); //先染成1 st[i] = 1; while(q.size()){ int t = q.front(); //equal为和t的颜色不一样的那个颜色 int equal = (st[t] == 1 ? 2 : 1); q.pop(); for(int v : graph[t]){ //没被染色 if(st[v] == 0){ q.push(v); st[v] = equal; } //染过色而且是相同颜色 else if(st[v] != equal){ return false; } } } } } return true; } };
标签:

力扣785.判断二分图由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“力扣785.判断二分图