当前位置: 首页 > news >正文

力扣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;
    }
};

相关文章:

  • 在AIStudio飞桨星河社区一键部署DeepSeek-r1:70b模型
  • leetcode第216题组合总和Ⅲ
  • 在笔记本电脑上用DeepSeek搭建个人知识库
  • 类似ComfyUI和Midjourney这样的文生图图生图应用的API与服务架构该怎么设计
  • linux shell脚本网络篇
  • LabVIEW正弦信号处理:FFT与最小二乘拟合的参数提取
  • 关于JavaScript性能问题的误解
  • Kotlin 运算符重载
  • Python 爬虫 – BeautifulSoup
  • 在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
  • MySQL中的共享锁和排他锁
  • Qwen2-Audio系列学习笔记
  • 事件循环_经典面试题
  • 【软件测试】论坛系统功能测试报告
  • 【HCIE实验1】模拟 DHCPv6 服务器及 PD 服务器分配 IPv6 地址和前缀的网络环境。
  • [代码规范]接口设计规范
  • 汽车控制应用对芯片的特殊要求
  • 在分布式系统中,解决因锁持有者故障导致锁无法释放的问题
  • Yocto + 树莓派摄像头驱动完整指南
  • spring boot整合flyway实现数据的动态维护
  • 调查丨永久基本农田沦为垃圾堆场,整改为何成“纸面工程”?
  • 国际博物馆日|航海博物馆:穿梭于海洋神话与造船工艺间
  • 国际金价下跌,中概股多数上涨,穆迪下调美国主权信用评级
  • 德州国资欲退出三东筑工,后者大股东系当地房企东海集团
  • 独家 |《苏州河》上海上演,编剧海飞:上海的风能吹透我
  • 体坛联播|巴萨提前2轮西甲夺冠,郑钦文不敌高芙止步4强