news 2026/4/3 17:45: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/4/2 4:48:42

13、树与图的数据结构详解

树与图的数据结构详解 1. 堆的不同类型 1.1 二项堆 二项堆是一种有趣的堆变体,它由一组不同阶的二项树组成。 - 二项树的构建 :0 阶二项树是一个单节点。可以用两个 n - 1 阶二项树构建 n 阶二项树,将其中一个作为另一个根节点的最左子节点。 - 确定二项堆中的二项树…

作者头像 李华
网站建设 2026/4/2 15:45:18

AugmentCode测试账户管理终极指南:5分钟掌握自动化浏览器插件

AugmentCode测试账户管理终极指南&#xff1a;5分钟掌握自动化浏览器插件 【免费下载链接】free-augment-code AugmentCode 无限续杯浏览器插件 项目地址: https://gitcode.com/gh_mirrors/fr/free-augment-code 还在为繁琐的测试账户创建流程而烦恼吗&#xff1f;&…

作者头像 李华
网站建设 2026/4/2 16:38:26

18、基于Qt/C++的响应式GUI编程指南

基于Qt/C++的响应式GUI编程指南 1. Qt对象模型 在GUI框架中,运行时效率和高级灵活性是关键因素。标准C++对象模型提供了高效的运行时支持,但其静态特性在某些领域缺乏灵活性。Qt框架将C++的速度与Qt对象模型的灵活性相结合。 Qt对象模型支持以下特性: - 信号和槽,用于实…

作者头像 李华
网站建设 2026/3/27 6:59:11

No!! MeiryoUI:Windows系统字体自定义完全指南

No!! MeiryoUI&#xff1a;Windows系统字体自定义完全指南 【免费下载链接】noMeiryoUI No!! MeiryoUI is Windows system font setting tool on Windows 8.1/10/11. 项目地址: https://gitcode.com/gh_mirrors/no/noMeiryoUI No!! MeiryoUI是一款专为Windows系统设计的…

作者头像 李华
网站建设 2026/3/28 19:50:20

OpenOOD:60+算法统一评测平台,构建AI可信检测新标准

OpenOOD&#xff1a;60算法统一评测平台&#xff0c;构建AI可信检测新标准 【免费下载链接】OpenOOD Benchmarking Generalized Out-of-Distribution Detection 项目地址: https://gitcode.com/gh_mirrors/op/OpenOOD 在人工智能技术飞速发展的今天&#xff0c;模型能否…

作者头像 李华
网站建设 2026/4/2 3:32:56

MiddleClick-Sonoma:重塑macOS触控板操作体验的终极解决方案

MiddleClick-Sonoma&#xff1a;重塑macOS触控板操作体验的终极解决方案 【免费下载链接】MiddleClick-Sonoma  "Wheel click" with three-finger click/tap for Trackpad and Magic Mouse. 项目地址: https://gitcode.com/gh_mirrors/mi/MiddleClick-Sonoma …

作者头像 李华