力扣785.判断二分图
- 创业
- 2025-09-16 16:39:02

力扣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.判断二分图”