平安科技两道编程题

一、求树的高度

import java.util.ArrayList;
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner in  = new Scanner(System.in);
        ArrayList<String>arr=new ArrayList<>();
        while(in.hasNext()) {
            arr.add(in.nextLine());
        }
        int n = arr.size()+1;
        if(n<3){
            System.out.println(n);
        }
        else{
            int[] height = new int [n];
            int[] binary = new int[n];
            height[0] = 1;
            int max = 0;
            for(int i = 0;i<n-1;i++){
                String[]str=arr.get(i).split("\\s+");
                int parent = Integer.valueOf(str[0]);
                int child = Integer.valueOf(str[1]);
                binary[parent] += 1;
                if(binary[parent] < 3){
                    height[child] = height[parent]+1;
                }
                max = Math.max(max, height[child]);
            }
            System.out.println(max);
        }
    }
}

二、成绩平均值降序输出

import java.util.*;
import java.util.Map.Entry;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        HashMap<String,Integer>map=new HashMap<>();
        while(sc.hasNext()) {
            String[] str=sc.nextLine().split("\\s+");
            double sum=0;
            for(int i=1;i!=str.length;i++) {

                sum+=Integer.valueOf(str[i]);
            }
            map.put(str[0], (int) Math.round(sum/(str.length-1)));

        }
        List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
            //降序排序
            @Override
            public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
                //return o1.getValue().compareTo(o2.getValue());
                return o2.getValue().compareTo(o1.getValue());
            }
        });

        for (Map.Entry<String, Integer> mapping : list) {
            System.out.println(mapping.getKey() + " " + mapping.getValue());
        }


    }
}
#平安科技##笔试题目##笔试时间#
全部评论
第二题是不是没有将entry加入到list中
点赞 回复 分享
发布于 2018-10-11 10:19
请问一下楼主,这种循环能跳出来吗?我怎么本地调试压根就不能跳出循环,hasNext()一直为true处于等待 while(in.hasNext()) { arr.add(in.nextLine()); }
点赞 回复 分享
发布于 2018-10-11 15:38
兄弟,你这第一题全a了吗,如果乱序输入的话还是得不到正确结果啊。比如输入为(4 5)(0 2)(1 3)(1 4)(0 1)
点赞 回复 分享
发布于 2018-10-11 22:08

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
评论
点赞
10
分享
牛客网
牛客企业服务