news 2026/6/10 17:05:36

leetcode 785. Is Graph Bipartite? 判断二分图-耗时100%

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 785. Is Graph Bipartite? 判断二分图-耗时100%

Problem: 785. Is Graph Bipartite? 判断二分图

解题过程

耗时100%,由于可能存在多个子树,所以每个子树都需要满足条件,拿到最大值n,然后使用状态数组,深度优先搜索dfs,若graph[i].size() > 0 && status[i]==false那么就是一颗子树,两个集合分别标记1或者2,标记从1开始,每次递归反转一次1-2,2-1,若存在两个相连的node的标记相同那么直接返回false

Code

class Solution { public: int group[101]; bool flag = true; void dfs(int node, vector<bool>& status, vector<vector<int>>& graph, int mark) { if(flag == false) return; status[node] = true; group[node] = mark; for(int i = 0; i < graph[node].size(); i++) { if(group[node]==group[graph[node][i]]) { flag = false; return; } if(status[graph[node][i]]==false) { dfs(graph[node][i], status, graph, (mark==1? 2:1) ); } } } bool isBipartite(vector<vector<int>>& graph) { int n = INT_MIN; for(int i = 0; i < graph.size(); i++) { for(int j = 0; j < graph[i].size(); j++) { n = max(n, graph[i][j]); } } if(n==INT_MIN) return true; n++; vector<bool> status(n, false); fill(group, group + 101, -1); for(int i = 0; i < graph.size(); i++) { if(graph[i].size() > 0 && status[i]==false) { dfs(i, status, graph, 1); if(flag == false) return false; } } return true; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:37:24

Marker PDF工具终极配置指南:3步解决常见安装问题

Marker PDF工具终极配置指南&#xff1a;3步解决常见安装问题 【免费下载链接】marker 一个高效、准确的工具&#xff0c;能够将 PDF 和图像快速转换为 Markdown、JSON 和 HTML 格式&#xff0c;支持多语言和复杂布局处理&#xff0c;可选集成 LLM 提升精度&#xff0c;适用于学…

作者头像 李华
网站建设 2026/6/10 12:46:17

16、数据结构与算法:从基础到应用

数据结构与算法:从基础到应用 1. 图的节点着色与最短路径搜索 在处理图数据结构时,节点着色和最短路径搜索是两个重要的问题。 1.1 节点着色 节点着色是指为图中的所有节点分配颜色(用数字表示),同时要遵循相邻节点不能使用相同颜色的规则,并且使用的颜色数量应尽可能…

作者头像 李华
网站建设 2026/6/10 15:04:31

Tabula PDF表格提取实用技巧:三步搞定数据自动化

Tabula PDF表格提取实用技巧&#xff1a;三步搞定数据自动化 【免费下载链接】tabula Tabula is a tool for liberating data tables trapped inside PDF files 项目地址: https://gitcode.com/gh_mirrors/ta/tabula 还在为PDF中的表格数据头疼吗&#xff1f;每次手动复…

作者头像 李华
网站建设 2026/6/9 23:45:47

LocalColabFold本地部署指南:5分钟快速搭建蛋白质结构预测环境

LocalColabFold本地部署指南&#xff1a;5分钟快速搭建蛋白质结构预测环境 【免费下载链接】localcolabfold 项目地址: https://gitcode.com/gh_mirrors/lo/localcolabfold LocalColabFold是一款强大的本地化蛋白质结构预测工具&#xff0c;能够将ColabFold的功能完整移…

作者头像 李华
网站建设 2026/6/9 18:39:26

Minecraft世界转换工具Chunker使用指南:跨版本存档迁移解决方案

Minecraft世界转换工具Chunker使用指南&#xff1a;跨版本存档迁移解决方案 【免费下载链接】Chunker Convert Minecraft worlds between Java Edition and Bedrock Edition 项目地址: https://gitcode.com/gh_mirrors/chu/Chunker 还在为不同平台间的Minecraft游戏进度…

作者头像 李华
网站建设 2026/6/9 20:52:55

14、使用Servlet和JavaServer Pages开发Portlet的全解析

使用Servlet和JavaServer Pages开发Portlet的全解析 在Portlet应用开发中,Servlet和JavaServer Pages(JSP)是常用的技术,它们能帮助开发者高效地实现数据操作和页面展示。下面将详细介绍如何使用这些技术来开发一个待办事项列表Portlet。 1. 使用Java标准标签库(JSTL) …

作者头像 李华