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

785. 判断二分图

785. 判断二分图

  • 原题链接:
  • 完成情况:
  • 解题思路:
  • 参考代码:

原题链接:

785. 判断二分图

https://leetcode.cn/problems/is-graph-bipartite/description/

完成情况:

在这里插入图片描述

解题思路:

 题目解释:每个节点都有一个编号 0~~~n-1然后一个graph[][] 二维数组,其中每个数组graph[u],代表按编号顺序过去的,里面的内容即为与当前对应编号所连接的边有哪些。

染色法 去解。

在算法中,“染色法” 通常指的是图论中的一种算法,用于解决图的染色问题,其中最经典的问题就是图的顶点着色问题。该问题的目标是为图的顶点分配颜色,使得任何相邻的顶点具有不同的颜色,同时最小化所使用的颜色数目。

这个问题在现实生活中有很多应用,例如在时间表设计中,课程或会议安排不同时需要同一时间和地点的资源,就可以使用图的染色方法来解决。

染色法有不同的变种和算法,其中一种基本的方法是贪心染色算法。贪心染色算法从一个顶点开始,为其分配一个颜色,然后遍历相邻的顶点,为每个相邻顶点分配一个颜色,但要确保分配的颜色与其相邻顶点的颜色不同。然后继续遍历未着色的顶点,为其分配颜色,并重复这个过程,直到所有顶点都被染色。

然而,贪心染色算法并不总能保证得到最少的颜色数。在一些情况下,可能需要使用更复杂的图染色算法,如回溯法、分支限界法等,来找到更优的染色方案。

总之,“染色法” 是解决图的顶点着色问题的一种算法,用于在满足相邻顶点颜色不同的条件下,找到尽可能少的颜色数目。

参考代码:

package 西湖算法题解___中等题;public class __785判断二分图__染色法     {/**题目解释:每个节点都有一个编号 0~~~n-1然后一个graph[][] 二维数组,其中每个数组graph[u],代表按编号顺序过去的,里面的内容即为与当前对应编号所连接的边有哪些。*/int color [];public boolean isBipartite(int[][] graph) {int nLength = graph.length;     //这是一个无向图color = new int[nLength];boolean flag = true;for (int i=0;i<nLength;i++){if (color[i] == 0){if (!dfs_isBipartite(i,1,graph)){flag = false;}}}return flag;}/**** @param u* @param c* @param graph* @return*/private boolean dfs_isBipartite(int u, int c, int[][] graph) {color[u]  = c;for (int i = 0;i<graph[u].length;i++){int node = graph[u][i];if (color[node] == 0) {if (!dfs_isBipartite(node, 3 - c, graph)) {return false;}} else {if (color[node] == c){return false;}}}return true;}
}

相关文章:

785. 判断二分图

785. 判断二分图 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 785. 判断二分图 https://leetcode.cn/problems/is-graph-bipartite/description/ 完成情况&#xff1a; 解题思路&#xff1a; 题目解释&#x…...

限时 180 天,微软为 RHEL 9 和 Ubuntu 22.04 推出 SQL Server 2022 预览评估版

导读近日消息&#xff0c;微软公司今天发布新闻稿&#xff0c;宣布面向 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;9 和 Ubuntu 22.04 两大发行版&#xff0c;以预览模式推出 SQL Server 2022 评估版。 近日消息&#xff0c;微软公司今天发布新闻稿&#xff0c;宣布…...

一款ccm的功率因素校正控制器ncp1654

产品概述&#xff1a; NCP1654是用于连续传导模式的控制器&#xff08;CCM&#xff09;功率因数校正升压预转换器。它控制固定频率模式下的电源开关导通时间&#xff08;PWM&#xff09;并且取决于瞬时线圈电流。 该电路封装在SO8封装中&#xff0c;最大限度地减少了外部组件&a…...

4.若依框架上传文件

1.服务端代码-控制器 /*** 上传文件*/PostMapping("/upload")Operation(summary "上传")public AjaxResult uploadFile(MultipartFile file) throws Exception {try {// 上传文件路径String filePath RuoYiConfig.getUploadPath();// 上传并返回新文件名…...

Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

项目场景&#xff1a; 最近因为公司业务需要在搭一个新架构&#xff0c;用的springboot3和jdk17,在整合mybatis多数据源的时候报错 &#xff08;引用的mybatisplus 和 mybatisplusjion的是最新的包-2023-08-26&#xff09; Error creating bean with name ‘XXXServiceImpl’:…...

idea的debug断点的使用

添加断点&#xff08;目前不知道如何添加断点&#xff0c;就给AutoConfigurationImportSelector的每个方法都加上断点&#xff09;&#xff1a; 然后将StockApplication启动类以debug方式运行&#xff0c;然后程序就会停在119行 点击上边的step over让程序往下运行一行&#x…...

【UE】蓝图通信——事件分发器

目标 比如我现在希望点击控件蓝图A中的按钮后&#xff0c;蓝图B能够马上做出响应 实现步骤 1. 这里控件蓝图A叫“UI_按钮”&#xff0c;我在该蓝图中创建了一个名为“btnIsClicked”的事件分发器 当按钮被点击时&#xff0c;就会调用“btnIsClicked” 2. 蓝图B这里叫做“BP_…...

Python爬虫分布式架构问题汇总

在使用Python爬虫分布式架构中可能出现以下的问题&#xff0c;我们针对这些问题&#xff0c;列出相应解决方案&#xff1a; 1、任务重复执行 在分布式环境下&#xff0c;多个爬虫节点同时从消息队列中获取任务&#xff0c;可能导致任务重复执行的问题。 解决方案&#xff1a;…...

AIGC人工智能涉及三十六职业,看看有没有你的职业(一)

文章目录 一只弹吉他的熊猫 神奇的企鹅 功夫熊猫 视觉光影下的女子 闪光灯效 局部柔光 生物光 LOGO设计 制作儿童绘本故事 换脸艺术 打造专属动漫头像 包装设计之美 建筑设计 如何转高清图 生成3D质感图标 生成微信表情包 探索美食摄影的奇妙之旅 蛋糕创意设…...

万界星空科技/免费MES系统/免费质量检测系统

质量管理也是万界星空科技免费MES中的一个重要组成部分&#xff0c;旨在帮助制造企业实现全面的质量管理。该系统涵盖了供应商来料、生产过程、质量检验、数据分析等各个环节&#xff0c;为企业提供了一站式的质量管理解决方案。 1. 实时质量监控 质量管理能够实时监控生产过程…...

解决IndexError: index 0 is out of bounds for axis 1 with size 0

标题 引言问题背景解决思路如何防止总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&#x1f466;&#x1f3fb; 《java 面试题大全》 &#x1f369;惟余辈才疏学浅&#xff0c;临摹之作或有不妥之处&#xff0c;还请读者海涵指正。☕&#x1f36d;…...

Java中hashTable的基本介绍,细节讨论,使用注意事项,常用方法和底层的扩容机制

Hashtable 是 Java 标准库中提供的一个古老的散列表&#xff08;Hash Table&#xff09;实现&#xff0c;用于存储键值对。它是线程安全的&#xff0c;基于哈希表的数据结构。然而&#xff0c;由于其线程安全性引入的同步机制&#xff0c;使得在多线程环境下性能相对较低。在现…...

redis -实战记录

redis -实战记录 一、安装二、使用 一、安装 centos - docker安装redisWindows10安装redis(图文教程&#xff09; 二、使用 node-red进行读写redis...

Mysql知识梳理

Mysql知识梳理 索引索引分类索引未命中的原因性能调优命令Explain回表 mysql性能优化事务四大特性事务隔离级别设置事务隔离级别 存储引擎聚簇索引和非聚簇索引聚簇索引非聚簇索引 最左前缀结合原则全文索引 索引 索引分类 mysql有普通索引、空间索引、主键索引、唯一索引、组…...

文生图模型之Stable Diffusion

原始文章地址 autoencoder CLIP text encoder tokenizer最大长度为77&#xff08;CLIP训练时所采用的设置&#xff09;&#xff0c;当输入text的tokens数量超过77后&#xff0c;将进行截断&#xff0c;如果不足则进行paddings&#xff0c;这样将保证无论输入任何长度的文本&…...

Java List循环安全删除元素

Java List循环安全删除元素的几种方式如下&#xff1a; 使用迭代器&#xff08;Iterator&#xff09;&#xff1a;通过调用List的iterator()方法获取List的迭代器&#xff0c;然后使用迭代器的remove()方法删除元素。这种方式可以避免在遍历过程中修改List导致的并发修改异常&…...

2023年03月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:和数 给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。 时间限制:10000 内存限制:65536 输入 共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个…...

bert-base-chinese 判断上下句

利用BERT等模型来实现语义分割。BERT等模型在预训练的时候采用了NSP&#xff08;next sentence prediction&#xff09;的训练任务&#xff0c;因此BERT完全可以判断两个句子&#xff08;段落&#xff09;是否具有语义衔接关系。这里我们可以设置相似度阈值 MERGE_RATIO &#…...

vue3+vue-cli使用mockjs

1.下载mockjs包 npm i mockjs -D 2.main.js中全局引入 // mock模拟后端数据 import /mock/index.js 3.axios下baseUrl注释掉&#xff0c;让其不走本地代理 // 使用mock数据的话&#xff0c;将这一项注释即可 // axios.defaults.baseURL process.env.VUE_APP_BASE_API; 4.s…...

Android 全局监听软键盘弹起隐藏 动态修改布局并适配无限循环的问题

思路&#xff1a; 要在 Android 应用中全局检测软键盘的弹起&#xff0c;您可以使用 ViewTreeObserver.OnGlobalLayoutListener 监听器来监听布局树的变化。当软键盘弹起或隐藏时&#xff0c;布局树会发生变化&#xff0c;因此您可以在监听器中捕获这些变化。 以下是一个示例…...

Realistic Vision V5.1 虚拟摄影棚:QT开发跨平台AI图像生成桌面应用

Realistic Vision V5.1 虚拟摄影棚&#xff1a;QT开发跨平台AI图像生成桌面应用 想象一下&#xff0c;你是一位独立摄影师或内容创作者&#xff0c;脑海里有一个绝妙的画面构思——可能是晨曦中穿着复古长裙的少女&#xff0c;也可能是赛博朋克都市里的未来侦探。过去&#xf…...

手把手教你用PLECS画波德图:从AC Sweep设置到看懂相位裕度,避坑指南

从零开始掌握PLECS波德图分析&#xff1a;工程师必备的频域诊断手册 第一次在PLECS里点击"AC Sweep"按钮时&#xff0c;我盯着满屏的参数选项发呆了十分钟。作为电力电子工程师&#xff0c;我们总说"看波德图就像看电路的体检报告"&#xff0c;但当你真正面…...

蓝桥杯备赛避坑指南:从校赛落选到国三逆袭的实战经验分享

蓝桥杯备赛避坑指南&#xff1a;从校赛落选到国三逆袭的实战经验分享 第一次参加蓝桥杯校赛时&#xff0c;我连最简单的编程题都没能完整写出。看着屏幕上仅完成的两道签到题和一堆未通过的测试用例&#xff0c;那种挫败感到现在都记忆犹新。但正是这次失败&#xff0c;让我后来…...

从SIM卡到基站信令:IMSI号码的5种获取方式全解析(含读卡器/Wireshark对比)

从SIM卡到基站信令&#xff1a;IMSI号码的5种获取方式全解析&#xff08;含读卡器/Wireshark对比&#xff09; 在物联网设备管理和移动通信维护领域&#xff0c;IMSI&#xff08;International Mobile Subscriber Identity&#xff09;作为SIM卡的核心标识符&#xff0c;其获取…...

AI开发不再卡顿:RTX4090D 24G镜像解决环境冲突全攻略

AI开发不再卡顿&#xff1a;RTX4090D 24G镜像解决环境冲突全攻略 1. 为什么选择RTX4090D 24G深度学习镜像&#xff1f; 深度学习开发者最头疼的问题莫过于环境配置。不同框架版本、CUDA版本、依赖库之间的冲突常常让人望而却步。传统环境搭建方式需要&#xff1a; 手动安装C…...

如何快速掌握React Email Editor:深入理解拖拽邮件编辑器的实现原理

如何快速掌握React Email Editor&#xff1a;深入理解拖拽邮件编辑器的实现原理 【免费下载链接】react-email-editor Drag-n-Drop Email Editor Component for React.js 项目地址: https://gitcode.com/gh_mirrors/re/react-email-editor React Email Editor是一个功能…...

【计算机组成原理】1 计算机组成原理学习路线:从晶体管到云架构的知识图谱

1 为什么你需要一张知识图谱 计算机组成原理是计算机科学的核心基石&#xff0c;它研究计算机硬件系统的基本组成原理、逻辑实现及工作机制。对于计算机专业学生或软件开发者而言&#xff0c;理解"代码如何在硬件上运行"不仅是应试需要&#xff0c;更是性能优化、系统…...

Nuitka打包Python脚本为.exe的完整避坑指南(含Selenium解决方案)

Nuitka打包Python脚本为.exe的完整避坑指南&#xff08;含Selenium解决方案&#xff09; 将Python脚本打包成独立的可执行文件是许多开发者面临的常见需求&#xff0c;尤其是当需要分发工具或应用给没有Python环境的用户时。Nuitka作为一款强大的Python编译器&#xff0c;能够将…...

嵌入式正交编码器软件解码库设计与实现

1. QuadratureEncoder 库概述QuadratureEncoder 是一个专为嵌入式系统设计的正交编码器信号处理库&#xff0c;面向 STM32、ESP32、nRF52 等主流 MCU 平台&#xff0c;提供高精度、低开销、抗干扰的旋转位置与速度检测能力。该库不依赖特定硬件外设&#xff08;如 STM32 的 TIM…...

技术指标——格雷厄姆指数

文章目录1. 格雷厄姆指数是什么&#xff1f;2. 格雷厄姆指数的作用是什么&#xff1f;3. 举例计算例1&#xff1a;牛市顶部&#xff08;2021年2月&#xff09;例2&#xff1a;熊市底部&#xff08;2024年2月&#xff09;例3&#xff1a;中性水平&#xff08;假设某一般时刻&…...