public class Main {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         int a;         int b;         Map<Integer,Integer>  map1= new HashMap<>();//度         Map<Integer, Integer> map2 = new HashMap<>();//边         for(int i=1;i<=n;i++) {             map1.put(i, 0);         }         for (int i = 0; i < n-1; i++) {             a = sc.nextInt();             int c1=map1.get(a);             map1.put(a, ++c1);             b=sc.nextInt();             map2.put(b, a);         }         System.out.println(map1);         int[] count = new int[n+1];         while (!map1.isEmpty()) {             Set<Map.Entry<Integer, Integer>> set = map1.entrySet();             List<Map.Entry<Integer, Integer>> list = new ArrayList<>(set);             con(list, count, map2, map1);         }        for(int i=1;i<count.length;i++) {            if (i == count.length) {                System.out.print(count[i]);            }            else{                System.out.print(count[i]+" ");            }        }     }     public static void con(List<Map.Entry<Integer, Integer>> list,int [] count,Map<Integer,Integer> map2,Map<Integer,Integer> map1) {         for (Map.Entry entry : list) {             if((Integer)entry.getValue()==0){                    count[(Integer)entry.getKey()]++;                     map1.remove(entry.getKey());                     if(map2.containsKey(entry.getKey())){                         Integer edge=map2.get(entry.getKey());                         int a = map1.get(edge);                         if(a>0)                         map1.put(edge, --a);                     }                } else if ((Integer) entry.getValue() > 0) {                      count[(Integer)entry.getKey()]++;             }         }     } }
点赞 评论

相关推荐

06-01 21:50
已编辑
天津理工大学 Java
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务