From e488b9cad977cd50a37edd990563006af749aff7 Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Mon, 26 Aug 2024 23:11:14 +0800 Subject: [PATCH] =?UTF-8?q?2024/8/26=20=E6=AF=8F=E6=97=A5=E4=B8=80?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/one_question_per_day/Employee.java | 16 ++++ .../LeetCode20240826.java | 76 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 src/main/java/com/cool/one_question_per_day/Employee.java create mode 100644 src/main/java/com/cool/one_question_per_day/LeetCode20240826.java diff --git a/src/main/java/com/cool/one_question_per_day/Employee.java b/src/main/java/com/cool/one_question_per_day/Employee.java new file mode 100644 index 0000000..ce22713 --- /dev/null +++ b/src/main/java/com/cool/one_question_per_day/Employee.java @@ -0,0 +1,16 @@ +package com.cool.one_question_per_day; + +import java.util.List; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/26/22:45 + * @Description: + */ +class Employee { + public int id; + public int importance; + public List subordinates; +}; diff --git a/src/main/java/com/cool/one_question_per_day/LeetCode20240826.java b/src/main/java/com/cool/one_question_per_day/LeetCode20240826.java new file mode 100644 index 0000000..77c91f5 --- /dev/null +++ b/src/main/java/com/cool/one_question_per_day/LeetCode20240826.java @@ -0,0 +1,76 @@ +package com.cool.one_question_per_day; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/26/22:36 + * DayNumber 1 + * Hard 2 + */ +public class LeetCode20240826 { + + /** + * @Author Cool + * @Date 23:05 2024/8/26 + * @Description 广搜 + **/ +// public int getImportance(List employees, int id) { +// Queue queue = new PriorityQueue<>(); +// int res = 0; +// Map map = employees.stream().collect(Collectors.toMap(employee -> employee.id, employee -> employee)); +// /** +// * 这个更快,流处理更装逼 +// * +// **/ +// // Map map = new HashMap(); +// // for (Employee employee : employees) { +// // map.put(employee.id, employee); +// // } +// // +// queue.addAll(map.get(id).subordinates); +// res+=map.get(id).importance; +// while (!queue.isEmpty()) { +// Integer header = queue.poll(); +// Employee employee = map.get(header); +// queue.addAll(employee.subordinates); +// res+=employee.importance; +// } +// return res; +// } + Map map = new HashMap<>(); + + public int getImportance(List employees, int id) { + int res = 0; + + for (Employee employee : employees) { + map.put(employee.id, employee); + } + Employee employee = map.get(id); + res += employee.importance; + for (Integer subordinate : employee.subordinates) { + res += dfs(map.get(subordinate)); + } + return res; + } + + /** + * @Author Cool + * @Date 23:10 2024/8/26 + * @Description 递归深搜 + **/ + + private int dfs(Employee employee) { + int res = 0; + res += employee.importance; + for (Integer subordinate : employee.subordinates) { + Employee employee1 = map.get(subordinate); + res += dfs(employee1); + } + return res; + } + +}