Course Schedule
来源:互联网 发布:sqlserver数据恢复 编辑:程序博客网 时间:2024/05/01 18:47
There are a total of n courses you have to take, labeled from 0
to n - 1
.
Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1]
Given the total number of courses and a list of prerequisite pairs, is it possible for you to finish all courses?
For example:
2, [[1,0]]
There are a total of 2 courses to take. To take course 1 you should have finished course 0. So it is possible.
2, [[1,0],[0,1]]
There are a total of 2 courses to take. To take course 1 you should have finished course 0, and to take course 0 you should also have finished course 1. So it is impossible.
找是否存在环,用深搜。不难,但因为数组越界debug了好久。吸取到一个教训,为方便debug以后在可能存在越界的地方加上断言。
class Solution {public: int *visit; bool isCircle; void isExistCircle(vector<vector<int> > &a,int i) { if(visit[i] == 1 || isCircle) return; visit[i] = -1; for(int j = 0;j<a[i].size();++j) { if(visit[a[i][j]] == -1){ isCircle = true; return; } isExistCircle(a,a[i][j]); } visit[i] = 1; } bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { if(numCourses == 0) return true; vector<vector<int> > a(numCourses,vector<int>()); visit = new int[numCourses]; memset(visit,0,numCourses*sizeof(int)); isCircle = false; for(int i=0;i<prerequisites.size();++i) { a[prerequisites[i].first].push_back(prerequisites[i].second); } for(int i=0;i<numCourses;++i) isExistCircle(a,i); delete []visit; return !isCircle; }};
0 0
- 【Course Schedule】Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Course Schedule
- Python通过suds调用WCF服务 传递Python List 到 WCF Service
- Eclipse常见错误及解决方案
- CentOS7 上源码安装KVM(qemu--kvm)
- ES6新特性概览
- 我的Android系统学习笔记——HAL
- Course Schedule
- MessageBox in iOS
- 【算法】最大连续乘积子串
- 黑马程序员 安卓基础学习笔记
- android调用系统相机、调用系统相册,调用系统图片裁剪报错的解决方案
- Android常用工具类(收藏)
- iOS之每日一记。。。。 键盘下去 限制textfiled的长度
- POJ - 2559 Largest Rectangle in a Histogram 单调栈
- 在myeclipse中添加hibernate+sqlsever数据库