|
1 | 1 | classSolution {
|
2 | 2 | publicList<Boolean>checkIfPrerequisite(intnumCourses,int[][]prerequisites,int[][]queries) {
|
3 |
| - |
4 |
| - |
5 | 3 | HashMap<Integer,List<Integer>>hm =newHashMap<>();
|
6 | 4 | List<Boolean>res =newArrayList<>();
|
7 | 5 | boolean[]visited =newboolean[numCourses];
|
8 |
| -for(inti=0;i<prerequisites.length;i++) { |
| 6 | +for(inti =0;i <prerequisites.length;i++) { |
9 | 7 | hm.putIfAbsent(prerequisites[i][1],newArrayList<>());
|
10 | 8 | hm.get(prerequisites[i][1]).add(prerequisites[i][0]);
|
11 | 9 | }
|
12 |
| -for(inti=0;i<queries.length;i++) { |
| 10 | +for(inti =0;i <queries.length;i++) { |
13 | 11 | visited =newboolean[numCourses];
|
14 | 12 | res.add(dfs(hm,queries[i][1],queries[i][0],visited));
|
15 | 13 | }
|
16 | 14 | returnres;
|
17 |
| - |
18 | 15 | }
|
19 | 16 |
|
20 | 17 | booleandfs(HashMap<Integer,List<Integer>>hm,ints,inttarget,boolean[]visited) {
|
| 18 | +if (!hm.containsKey(s))returnfalse; |
| 19 | +if (hm.get(s).contains(target))returntrue; |
21 | 20 |
|
22 |
| -if(!hm.containsKey(s))returnfalse; |
23 |
| -if(hm.get(s).contains(target))returntrue; |
24 |
| - |
25 |
| -for(inti:hm.get(s)) { |
26 |
| -if(visited[i])continue; |
| 21 | +for (inti:hm.get(s)) { |
| 22 | +if (visited[i])continue; |
27 | 23 | visited[i] =true;
|
28 |
| -if(dfs(hm,i,target,visited))returntrue; |
| 24 | +if(dfs(hm,i,target,visited))returntrue; |
29 | 25 | }
|
30 | 26 | returnfalse;
|
31 | 27 | }
|
|