2024/8/26 每日一题

This commit is contained in:
Cool 2024-08-26 23:11:14 +08:00
parent 12a0861326
commit e488b9cad9
2 changed files with 92 additions and 0 deletions

View File

@ -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<Integer> subordinates;
};

View File

@ -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<Employee> employees, int id) {
// Queue<Integer> queue = new PriorityQueue<>();
// int res = 0;
// Map<Integer, Employee> map = employees.stream().collect(Collectors.toMap(employee -> employee.id, employee -> employee));
// /**
// * 这个更快流处理更装逼
// *
// **/
// // Map<Integer, Employee> map = new HashMap<Integer, Employee>();
// // 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<Integer, Employee> map = new HashMap<>();
public int getImportance(List<Employee> 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;
}
}