207 Course Schedule
来源:互联网 发布:淘宝发布宝贝产品规格 编辑:程序博客网 时间:2024/06/05 19:54
//WA 开始以为同一门课只有一门前置,class Solution {public: bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { unordered_map<int,int> hash; for(int i=0;i<prerequisites.size();i++) { hash[prerequisites[i].first]=prerequisites[i].second; } int *d=new int[numCourses]; memset(d,0,sizeof(int)*numCourses); for(int i=0;i<numCourses;i++) { if(d[i]==0) { int j=i; unordered_set<int> m; while(hash.find(j)!=hash.end()) { //cout<<j<<" "; d[j]=1; if(m.find(j)!=m.end()) return false; m.insert(j); j=hash[j]; } //cout<<endl; d[j]=1; } } return true; }};
//ac 400msclass Solution {public: bool find_pre(unordered_map<int,vector<int>> &hash,unordered_set<int> &m,int i,int *d) { //if(d[i]==1) return true; d[i]=1; if(hash.find(i)==hash.end()) return true; for(int j=0;j<hash[i].size();j++) { if(m.find(hash[i][j])!=m.end()) return false; m.insert(hash[i][j]); if(!find_pre(hash,m,hash[i][j],d)) return false; m.erase(hash[i][j]); } return true; } bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { unordered_map<int,vector<int>> hash; vector<int> temp; for(int i=0;i<prerequisites.size();i++) { if(hash.find(prerequisites[i].first)!=hash.end()) hash[prerequisites[i].first].push_back(prerequisites[i].second); else hash[prerequisites[i].first]={prerequisites[i].second}; } int *d=new int[numCourses]; memset(d,0,sizeof(int)*numCourses); for(int i=0;i<numCourses;i++) { unordered_set<int> m; m.insert(i); if(d[i]==0&&!find_pre(hash,m,i,d)) return false; } return true; }};
//ac 268msclass Solution {public: bool find_pre(unordered_map<int,vector<int>> &hash,unordered_set<int> &m,int i,int *d) { //if(d[i]==1) return true; d[i]=1; if(hash.find(i)==hash.end()) return true; for(int j=0;j<hash[i].size();j++) { if(m.find(hash[i][j])!=m.end()) return false; if(d[hash[i][j]]==1) continue; m.insert(hash[i][j]); if(!find_pre(hash,m,hash[i][j],d)) return false; m.erase(hash[i][j]); } return true; } bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { unordered_map<int,vector<int>> hash; vector<int> temp; for(int i=0;i<prerequisites.size();i++) { if(hash.find(prerequisites[i].first)!=hash.end()) hash[prerequisites[i].first].push_back(prerequisites[i].second); else hash[prerequisites[i].first]={prerequisites[i].second}; } int *d=new int[numCourses]; memset(d,0,sizeof(int)*numCourses); for(int i=0;i<numCourses;i++) { unordered_set<int> m; m.insert(i); if(d[i]==0&&!find_pre(hash,m,i,d)) return false; } return true; }};
0 0
- 207Course Schedule 210Course Schedule II
- LeetCode 207 - Course Schedule
- leetcode 207: Course Schedule
- LeetCode 207-Course Schedule
- 【Leetcode】Course Schedule #207
- LeetCode 207 Course Schedule
- LeetCode(207)Course Schedule
- leetcode 207: Course Schedule
- [LeetCode 207] Course Schedule
- 207 Course Schedule
- 【LEETCODE】207-Course Schedule
- LeetCode 207 Course Schedule
- 207Course Schedule
- 207 Course Schedule
- LeetCode 207 Course Schedule
- LeetCode 207 Course Schedule
- Leetcode 207 Course Schedule
- 207&210. Course Schedule
- 用Apache httpclient模拟登陆学生个人信息系统
- Java编程思想--格式化说明符
- 专题二1005
- 正态分布的由来
- 专题二 1001
- 207 Course Schedule
- 根据类Student的定义,创建五个该类的对象,输出每个学生的信息, 计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。
- Windows安装MySQL5.7
- AnyEvent::HTTP 实现异步请求
- Java 线程池原理解析(二)
- Location and Maps(位置和地图)——翻译自developer.android.com
- Hexo系列3:博客优化
- Mac忘记root密码
- leetcode——48——Rotate Image