关注
拓扑排序的思路,可惜当时没做完 import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Queue; import java.util.Scanner; import java.util.TreeMap; public class Demo3 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int n = in.nextInt(); int num[][] = new int[n-1][2]; for(int i=0;i<n-1;i++) { num[i][0] = in.nextInt(); num[i][1] = in.nextInt(); } int indrgee[] = new int[n+1]; //Map<Integer,List<Integer>> map = new HashMap<Integer, List<Integer>>(); List<Integer> list = new ArrayList<>(); for(int i=1;i<=n;i++) list.add(i); for(int i=0;i<n-1;i++) { /*if(map.containsKey(num[i][0])) { map.get(num[i][0]).add(num[i][1]); }else { List<Integer> list = new ArrayList<Integer>(); list.add(num[i][1]); map.put(num[i][0], list); }*/ indrgee[num[i][0]]++; } Map<Integer, Integer> treemap = new TreeMap<>(); boolean isDelete[] = new boolean[n+1]; //int count=0; while(list.size()>0) { Queue<Integer> queue = new LinkedList<>(); for(int i=1;i<=n;i++) { if(!isDelete[i]&&(indrgee[i]==0||indrgee[i]==1)) { queue.offer(i); list.remove(new Integer(i)); isDelete[i]=true; /*System.out.println("删除:"+i); for(int j:list) { System.out.println(j); }*/ } } while(!queue.isEmpty()) { int temp = queue.poll(); for(int i=0;i<n-1;i++) { if(num[i][1]==temp) { indrgee[num[i][0]]--; } } if(!treemap.containsKey(temp)) { treemap.put(temp, 1); }else { treemap.put(temp, treemap.get(temp)+1); } } for(int i:list) { if(!treemap.containsKey(i)) { treemap.put(i, 1); }else { treemap.put(i, treemap.get(i)+1); } } } for(Map.Entry<Integer, Integer> entry:treemap.entrySet()) { System.out.println("节点:"+entry.getKey()+",次数:"+entry.getValue()); } /*List<Integer> res = new ArrayList<Integer>(treemap.values()); for (int i = 0; i < res.size(); i++) { if(i==res.size()-1) { System.out.print(res.get(i)); }else { System.out.print(res.get(i)+" "); } }*/ } }
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
29932次浏览 497人参与
# 如果有时光机,你最想去到哪个年纪? #
47060次浏览 800人参与
# 实习吐槽大会 #
31521次浏览 153人参与
# 非技术岗简历怎么写 #
209692次浏览 2860人参与
# 晒一晒你的工位 #
85649次浏览 304人参与
# 26届秋招投递记录 #
3628次浏览 102人参与
# 2025牛客秋招季 #
3922次浏览 122人参与
# 双非能在秋招上岸吗? #
215150次浏览 1142人参与
# 被AI治愈的瞬间 #
52294次浏览 597人参与
# 怎么防止在试用期被辞退 #
122298次浏览 911人参与
# 我的租房踩坑经历 #
27112次浏览 279人参与
# 穿越回高考你还会选现在的专业吗 #
21463次浏览 266人参与
# 我和mentor的爱恨情仇 #
43448次浏览 277人参与
# 打工人的工作餐日常 #
40422次浏览 343人参与
# 软开人,说说你的烦心事 #
48061次浏览 359人参与
# 毕业旅行去哪玩儿 #
1223次浏览 33人参与
# 硬件/芯片公司工作体验 #
75178次浏览 664人参与
# 商战,最累的是我们 #
13026次浏览 52人参与
# 打工人锐评公司红黑榜 #
145908次浏览 919人参与
# 25届秋招公司红黑榜 #
262149次浏览 1094人参与