Skip to content

Commit 919fc51

Browse files
author
Skm2000
committed
Added comments
1 parent dcbc451 commit 919fc51

File tree

1 file changed

+19
-29
lines changed

1 file changed

+19
-29
lines changed

Solutions/Course_Schedule.cpp

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,31 @@ using namespace std;
33

44
class Solution {
55
private:
6-
// using bfs
7-
bool isBipartite(vector<vector<int>>&adj,int N,int node,vector<int>&color){
8-
queue<int>q;
9-
q.push(node);
10-
color[node]=1;
11-
while(!q.empty()){
12-
int curr=q.front();
13-
q.pop();
14-
for(int ele:adj[curr]){
15-
if(color[ele] == color[curr]){ //bipartite cannot have two adjacent nodes of same color
16-
return false;
17-
}
18-
if(color[ele]==-1){
19-
color[ele]=1-color[curr];
20-
q.push(ele);
21-
}
6+
bool isCyclic(vector<vector<int>>&adj,vector<int>&visited,int current){
7+
if(visited[current]==2)
8+
return true;
9+
visited[current]=2;
10+
for(int i=0;i<adj[current].size();i++){
11+
if(visited[adj[current][i]]!=1){
12+
if(isCyclic(adj,visited,adj[current][i]))
13+
return true;
2214
}
2315
}
24-
return true;
16+
visited[current]=1;
17+
return false;
2518
}
2619
public:
27-
bool possibleBipartition(int N, vector<vector<int>>& dislikes) {
28-
//Making adjacency list
29-
vector<vector<int>>adj(N+1);
30-
for(int i=0;i<dislikes.size();i++){
31-
adj[dislikes[i][0]].push_back(dislikes[i][1]);
32-
adj[dislikes[i][1]].push_back(dislikes[i][0]);
20+
bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
21+
vector<vector<int>>adj(numCourses);
22+
for(int i=0;i<prerequisites.size();i++){
23+
adj[prerequisites[i][0]].push_back(prerequisites[i][1]);
3324
}
34-
// a color array
35-
// -1:not visited, 1: denotes first color set, 0: denotes second color set
36-
vector<int>color(N+1,-1);
37-
for(int i=0;i<N;i++){
38-
if(color[i]==-1){
39-
if(!isBipartite(adj,N,i,color))
25+
vector<int>visited(numCourses,0);
26+
for(int i=0;i<numCourses;i++){
27+
if(visited[i]==0){
28+
if(isCyclic(adj,visited,i)){
4029
return false;
30+
}
4131
}
4232
}
4333
return true;

0 commit comments

Comments
 (0)