LeetCode:785. 判断二分图

class Solution {

private:

bool ok=true;

vector<bool>color;

vector<bool>visited;

void traverse(vector<vector<int>>& graph,int v){

if(!ok){

return ;

}

visited[v]=true;

for(int w:graph[v]){

if(!visited[w]){

color[w]=!color[v];

traverse(graph,w);

}else{

if(color[w]==color[v]){

ok=false;

}

}

}

}

public:

bool isBipartite(vector<vector<int>>& graph) {

int n = graph.size();

color = vector<bool>(n);

visited=vector<bool>(n);

for(int v=0;v<n;v++){

if(!visited[v]){

traverse(graph,v);

}

}

return ok;

}

};

相关推荐
IronMurphy6 分钟前
【算法三十九】994. 腐烂的橘子
算法
Ares-Wang1 小时前
算法》》旅行商问题 TSP、7座桥问题 哈密顿回路 深度优先 和 宽度优先
算法·深度优先·宽度优先
Liqiuyue1 小时前
Transformer:现代AI革命背后的核心模型
人工智能·算法·机器学习
WolfGang0073211 小时前
代码随想录算法训练营 Day34 | 动态规划 part07
算法·动态规划
And_Ii1 小时前
LCR 168. 丑数
c++
Kk.08022 小时前
Linux(十一)fork实例练习、文件操作示例及相关面试题目分享
linux·运维·算法
CoderMeijun2 小时前
C++ 时间处理与格式化输出:从 Linux 时间函数到 Timestamp 封装
c++·printf·stringstream·时间处理·clock_gettime
潇冉沐晴3 小时前
2026CCCC第三次模拟赛 部分题解
算法
WolfGang0073213 小时前
代码随想录算法训练营 Day32 | 动态规划 part05
算法·动态规划