当前位置:网站首页>[LeetCode]508. 出現次數最多的子樹元素和
[LeetCode]508. 出現次數最多的子樹元素和
2022-06-27 21:49:00 【阿飛算法】
題目
508. 出現次數最多的子樹元素和
給你一個二叉樹的根結點 root ,請返回出現次數最多的子樹元素和。如果有多個元素出現的次數相同,返回所有出現次數最多的子樹元素和(不限順序)。
一個結點的 「子樹元素和」 定義為以該結點為根的二叉樹上所有結點的元素之和(包括結點本身)。
示例 1:
輸入: root = [5,2,-3]
輸出: [2,-3,4]
示例 2:
輸入: root = [5,2,-5]
輸出: [2]
提示:
節點數在 [1, 104] 範圍內
-105 <= Node.val <= 105
方法1:DFS
public int[] findFrequentTreeSum(TreeNode root) {
if (root == null) return new int[]{
};
dfs(root);
List<Integer> list = new ArrayList<>();
for (int k : map.keySet()) {
if (map.get(k) == maxx) list.add(k);
}
int[] res = new int[list.size()];
for (int i = 0; i < list.size(); i++) res[i] = list.get(i);
return res;
}
int maxx = 0;//出現的最大的次數
//記錄當前出現的sum 的次數
Map<Integer, Integer> map = new HashMap<>();
private int dfs(TreeNode root) {
if (root == null) return 0;
int l = dfs(root.left);
int r = dfs(root.right);
int s = l + root.val + r;
map.put(s, map.getOrDefault(s, 0) + 1);
maxx = Math.max(maxx, map.get(s));
return s;
}
边栏推荐
猜你喜欢
SQL必需掌握的100个重要知识点:过滤数据
Go从入门到实战——CSP并发机制(笔记)
AI 绘画极简教程
微服务之远程调用
100 important knowledge points that SQL must master: sorting and retrieving data
100 important knowledge points that SQL must master: filtering data
今晚战码先锋润和赛道第2期直播丨如何参与OpenHarmony代码贡献
Codeforces Round #719 (Div. 3)
AI painting minimalist tutorial
Go from introduction to actual combat - package (notes)
随机推荐
MYSQL和MongoDB的分析
Go从入门到实战—— 多路选择和超时控制(笔记)
100 important knowledge points that SQL must master: retrieving data
跟我一起AQS SOS AQS
Scrum和看板的区别
Go从入门到实战——package(笔记)
io流代码
Codeforces Global Round 14
"Apprendre cette image" apparaît sur le Bureau win11 comment supprimer
GBase 8a OLAP函数group by grouping sets的使用样例
洛谷P5706 再分肥宅水
100 important knowledge points for SQL: in operator
Go from entry to practice - multiple selection and timeout control (notes)
快速excel导出
Simulink导出FMU模型文件方法
SQL必需掌握的100个重要知识点:IN 操作符
我想我要开始写我自己的博客了。
Bit. Store: long bear market, stable stacking products may become the main theme
qt base64加解密
SQL必需掌握的100个重要知识点:排序检索数据