当前位置: 首页 > 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;因此您可以在监听器中捕获这些变化。 以下是一个示例…...

Piccolo-FIM:DRAM细粒度访问优化技术解析

1. 现代DRAM架构的细粒度访问挑战在传统DRAM架构中&#xff0c;数据访问的最小单位通常是一个完整的行&#xff08;Row&#xff09;&#xff0c;这种粗粒度的访问机制在处理图计算等不规则访问模式时暴露出了明显的效率问题。当需要随机访问内存中的离散数据时&#xff0c;系统…...

CFD热分析中绝热传热系数与叠加核函数原理及应用

1. CFD热分析中的绝热传热系数与叠加核函数原理剖析在电子设备热管理领域&#xff0c;随着功率密度的不断提升&#xff0c;传统的热设计方法已难以满足精度和效率的双重要求。绝热传热系数(Adiabatic Heat Transfer Coefficient, AHTC)与叠加核函数(Superposition Kernel Funct…...

PADS PCB设计工具的核心优势与应用实践

1. PADS PCB设计工具概述作为一名拥有十年PCB设计经验的工程师&#xff0c;我亲身体验过从Protel到Altium再到Cadence Allegro的各种EDA工具。但当我在2015年首次接触PADS时&#xff0c;它独特的"约束驱动设计"理念和高效的交互式布线引擎立刻吸引了我。PADS&#xf…...

量子退火在锂离子电池材料优化中的应用与原理

1. 量子退火技术原理与材料优化应用概述量子退火&#xff08;Quantum Annealing&#xff09;是一种基于量子力学原理的优化算法&#xff0c;它通过模拟量子系统的绝热演化过程来寻找复杂问题的全局最优解。与传统模拟退火算法相比&#xff0c;量子退火利用量子隧穿效应而非热涨…...

OpenCrab:面向中文开发者的开源项目导航与协作平台架构实践

1. 项目概述&#xff1a;一个面向中文开发者的开源螃蟹&#xff1f;第一次在GitHub上看到opencrab-cn/opencrab这个仓库名时&#xff0c;我愣了一下。OpenCrab&#xff1f;开源螃蟹&#xff1f;这名字听起来既有趣又让人摸不着头脑。点进去一看&#xff0c;发现这并非一个关于海…...

理想汽车AI组织架构重组

把公司拆成心脏、大脑和手脚——理想汽车这波AI组织架构重组到底在赌什么&#xff1f; 导读&#xff1a;李想用一场2小时的全员会&#xff0c;把一家年营收千亿的公司按人体器官逻辑重新组装。这不是比喻&#xff0c;这是组织结构图上的真实节点。从造车到"造人"&…...

arp-scan:穿透防火墙的局域网设备发现利器,为什么它比传统扫描工具更有效?

arp-scan&#xff1a;穿透防火墙的局域网设备发现利器&#xff0c;为什么它比传统扫描工具更有效&#xff1f; 【免费下载链接】arp-scan The ARP Scanner 项目地址: https://gitcode.com/gh_mirrors/ar/arp-scan 在复杂的网络环境中&#xff0c;快速准确地发现局域网内…...

Hotkey Detective终极指南:3分钟快速定位Windows热键冲突的完整教程

Hotkey Detective终极指南&#xff1a;3分钟快速定位Windows热键冲突的完整教程 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

2024必看!AI写教材的实用工具,一键生成20万字教材且低查重!

编写教材难题与AI工具解决方案 编写教材&#xff0c;如何更好地适应多样化需求呢&#xff1f;不同年级学生的认知能力差异显著&#xff0c;内容过于深入或过于浅显都会造成困扰&#xff1b;在课堂教学和自主学习等多种场景中&#xff0c;教材的呈现方式需要灵活调整&#xff1…...

Java统一AI SDK实战:集成OpenAI、Claude、Gemini多模型API

1. 项目概述与核心价值 最近在折腾一个需要集成多个大模型API的Java项目&#xff0c;从OpenAI到Claude再到Google Gemini&#xff0c;每个厂商的SDK调用方式、请求体结构、错误处理都不太一样&#xff0c;光是写适配代码就够喝一壶的。更别提还要处理流式响应、文件上传、Func…...