第一题 import java.util.*; public class Main {     public static void main(String[] args) {         Scanner scan = new Scanner(System.in);         String[] strs = scan.nextLine().split(" ");         int[] pids = new int[strs.length];         for (int i = 0; i < strs.length; i++)             pids[i] = Integer.parseInt(strs[i]);         strs = scan.nextLine().split(" ");         int[] ppids = new int[strs.length];         for (int i = 0; i < strs.length; i++)             ppids[i] = Integer.parseInt(strs[i]);         int n = Integer.parseInt(scan.nextLine());         System.out.println(getNums(pids, ppids, n));     }     static int getNums(int[] pids, int[] ppids, int n) {         HashMap<Integer, List<Integer>> map = new LinkedHashMap<>();         boolean flag = false;         for (int i = 0; i < ppids.length; i++) {             if (pids[i] == n)                 flag = true;             int ppid = ppids[i];             if (map.containsKey(ppid)) {                 List<Integer> tmp = map.get(ppid);                 tmp.add(pids[i]);                 map.replace(ppid, tmp);             } else {                 List<Integer> tmp = new ArrayList<>();                 tmp.add(pids[i]);                 map.put(ppid, tmp);             }         }         if (!flag)             return 0;         if (!map.containsKey(n))             return 1;         return getnum(map, n) + 1;     }     static int getnum(HashMap<Integer, List<Integer>> map, int n) {         if (!map.containsKey(n))             return 0;         List<Integer> list = map.get(n);         int all = list.size();         for (int i = 0; i < list.size(); i++)             all += getnum(map, list.get(i));         return all;     } }

相关推荐

不愿透露姓名的神秘牛友
07-25 17:51
点赞 评论 收藏
分享
给我发了笔试链接,想着等晚上回去做,结果还没做流程就终止了
伟大的小黄鸭在学习:我猜就是笔试几乎没用,就是用来给用人部门拖时间复筛简历的,可能用人部门筛到你简历觉得不合适就提前挂了
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务