博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
207. Course Schedule
阅读量:6834 次
发布时间:2019-06-26

本文共 1039 字,大约阅读时间需要 3 分钟。

https://leetcode.com/problems/course-schedule/description/

DFS, detect cycle. For each node, we have 3 states during DFS: 1) un-visited, 2) visiting, 3) visited.

class Solution {public:    bool canFinish(int n, vector
>& p) { vector
visited(n, -1); // un-visited vector
> v(n, set
()); for (int i = 0; i < p.size(); i++) { v[p[i].second].insert(p[i].first); } for (int i = 0; i < n; i++) if (visited[i] == -1 && dfs(v, visited, i)) return false; return true; } bool dfs(vector
>& v, vector
& visited, int n) { visited[n] = 1; // visiting for (auto nb : v[n]) { if (visited[nb] == 1) return true; else if (visited[nb] == 2) continue; else { if (dfs(v, visited, nb)) return true; } } visited[n] = 2; // visited return false; }};

 is another way.

转载于:https://www.cnblogs.com/JTechRoad/p/9001297.html

你可能感兴趣的文章
qt添加图标
查看>>
字节流高效缓冲区文件复制
查看>>
ColorMatrixColorFilter颜色过滤(离线用户的灰色头像处理)
查看>>
react:reducer-creator
查看>>
MyEclipse 总是弹出“multiple Errors have Occurred”
查看>>
sas实例合集
查看>>
C语言解释器的实现--存储结构(一)
查看>>
Java Eclipse常规设置
查看>>
ios官方菜单项目重点剖析附项目源码
查看>>
构建javaweb项目
查看>>
MVC5学习笔记
查看>>
大大大大板子
查看>>
使用博客园时,如何在自己的博客上显示头像?
查看>>
【作业】简单绘图程序
查看>>
二分查找
查看>>
java ee
查看>>
复制文字,链接,剪贴板的使用
查看>>
RSA加解密-2
查看>>
正向与反向代理的理解
查看>>
二分搜索法
查看>>