**
**
****
class Solution {
public boolean canFinish(int n, int[][] p) {
Map<Integer,List<Integer>> edges = new HashMap<>();
int[] in = new int[n];//统计每个顶点入度数
//建图
for(int i = 0; i < p.length; i++){
int a = p[i][0], b = p[i][1]; //指向: b -> a
if(!edges.containsKey(b)){
edges.put(b,new ArrayList<>());
}
edges.get(b).add(a);
in[a]++;
}
Queue<Integer> q = new LinkedList<>();
//进行拓扑排序: 先把入度为0的节点加入队列
for(int i = 0; i < n; i++){
if(in[i] == 0) q.offer(i);
}
while(!q.isEmpty()){
int t = q.poll();
//可能会指向空的
for(int x : edges.getOrDefault(t, new ArrayList<>())){
//删除节点指向的边
in[x]--;
if(in[x] == 0) q.offer(x);
}
}
//判断是否有环
for(int pos : in){
if(pos != 0) return false;
}
return true;
}
}
喝苦荞茶对身体有什么好处 | 脂肪肝吃什么中药 | 一什么白菜 | 精囊炎吃什么药最有效 | 白蛋白下降是什么原因 |
芹菜可以炒什么 | hpv病毒是什么病 | 硫磺皂有什么作用 | 脑萎缩吃什么药能控制 | 吃甲钴胺有什么副作用 |
柏读什么 | 装可以组什么词 | 长脸适合什么刘海 | 虫草适合什么人吃 | 丁香泡水喝有什么功效和作用 |
眉尾长痘是什么原因 | 羊宝是什么东西 | 二十七岁属什么生肖 | 1996五行属什么 | 流鼻血吃什么 |
双相障碍是什么hcv9jop7ns0r.cn | 滑膜炎吃什么药能治好jingluanji.com | 什么是安全期hcv9jop5ns3r.cn | 小孩割包皮挂什么科hcv9jop7ns2r.cn | 手麻是什么情况hcv8jop4ns5r.cn |
肠粉是什么做的hcv8jop8ns7r.cn | 喉咙不舒服吃什么水果好hcv8jop2ns9r.cn | 高温什么时候结束jiuxinfghf.com | 什么叫八卦jinxinzhichuang.com | 马来西亚人为什么会说中文hcv7jop4ns6r.cn |
孩子贫血吃什么补血最快hcv7jop9ns1r.cn | 装牙套有什么坏处hcv9jop0ns8r.cn | 母亲节送什么花hcv8jop3ns4r.cn | robam是什么牌子hcv9jop1ns2r.cn | 老婆的妹妹叫什么hcv8jop7ns6r.cn |
高中学考是什么意思hcv8jop0ns2r.cn | 44岁属什么hcv9jop4ns4r.cn | 胎儿肾积水是什么原因引起的hcv8jop2ns0r.cn | 脖子右侧疼是什么原因hcv9jop5ns9r.cn | 耳朵热是什么原因zhongyiyatai.com |