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;

}

};

相关推荐
^Moon^3 小时前
CycloneDDS:跨主机多进程通信全解析
c++·分布式·dds
rit84324993 小时前
基于MATLAB实现基于距离的离群点检测算法
人工智能·算法·matlab
C_Liu_5 小时前
C++:list
开发语言·c++
my rainy days5 小时前
C++:友元
开发语言·c++·算法
haoly19895 小时前
数据结构和算法篇-归并排序的两个视角-迭代和递归
数据结构·算法·归并排序
微笑尅乐5 小时前
中点为根——力扣108.讲有序数组转换为二叉搜索树
算法·leetcode·职场和发展
小梁努力敲代码5 小时前
java数据结构--List的介绍
java·开发语言·数据结构
鄃鳕6 小时前
python 字典 列表 类比c++【python】
c++·python
im_AMBER6 小时前
算法笔记 05
笔记·算法·哈希算法