文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一棵根节点为 0 的 二叉树 ,它总共有 n 个节点,节点编号为 0 到 n - 1 。
同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点
由于节点 0 是根,所以 parents[0] == -1

一个子树的 大小 为这个子树内节点的数目
每个节点都有一个与之关联的 分数
求出某个节点分数的方法是,将这个节点和与它相连的边全部 删除 ,剩余部分是若干个 非空 子树,这个节点的 分数 为所有这些子树 大小的乘积

请你返回有 最高得分 节点的 数目 。

示例 1:

输入:parents = [-1,2,0,2,0]
输出:3
解释:
- 节点 0 的分数为:3 * 1 = 3
- 节点 1 的分数为:4 = 4
- 节点 2 的分数为:1 * 1 * 2 = 2
- 节点 3 的分数为:4 = 4
- 节点 4 的分数为:4 = 4
最高得分为 4 ,有三个节点得分为 4 (分别是节点 1,3 和 4 )。

示例 2:

输入:parents = [-1,2,0]
输出:2
解释:
- 节点 0 的分数为:2 = 2
- 节点 1 的分数为:2 = 2
- 节点 2 的分数为:1 * 1 = 1
最高分数为 2 ,有两个节点分数为 2 (分别为节点 0 和 1 )。提示:
n == parents.length
2 <= n <= 10^5
parents[0] == -1
对于 i != 0 ,有 0 <= parents[i] <= n - 1
parents 表示一棵二叉树。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-nodes-with-the-highest-score
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 建图,dfs,自底向上求子树节点数量
  • dfs,求取每个节点的得分
class Solution {vector<vector<int>> g;vector<long long> score;long long ans = 0, n;
public:int countHighestScoreNodes(vector<int>& parents) {n = parents.size();g.resize(n);score.resize(n);for(int i = 1; i < n; ++i)g[parents[i]].push_back(i);vector<int> node(n, 0);dfs(0, node);dfs1(0, node);int ct = 0;for(auto s : score){if(s == ans)ct++;}return ct;}int dfs(int x, vector<int>& node){node[x]++;for(auto y : g[x])node[x] += dfs(y, node);return node[x];}void dfs1(int x, vector<int>& node){for(auto y : g[x])dfs1(y, node);if(g[x].size()==0) score[x] = n-1;else if(g[x].size()==1){int n1 = node[g[x][0]];score[x] = 1LL*n1*((n-1-n1)==0? 1 :(n-1-n1));}else{int n1 = node[g[x][0]];int n2 = node[g[x][1]];score[x] = 1LL*n1*n2*((n-1-n1-n2)==0? 1 : (n-1-n1-n2));}ans = max(ans, score[x]);}
};

276 ms 132.7 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2049. 统计最高分的节点数目(DFS)相关推荐

  1. 2049. 统计最高分的节点数目

    2049. 统计最高分的节点数目 给你一棵根节点为 0 的 二叉树 ,它总共有 n 个节点,节点编号为 0 到 n - 1 .同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 ...

  2. LeetCode 1905. 统计子岛屿

    LeetCode 1905. 统计子岛屿 题目 思路 代码 题目 链接: https://leetcode.cn/problems/count-sub-islands/ 给你两个 m x n 的二进制 ...

  3. LeetCode 1504. 统计全 1 子矩形(记录左侧的连续1的个数)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat , 请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat ...

  4. LeetCode 1180. 统计只含单一字母的子串

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 S,返回只含 单一字母 的子串个数. 示例 1: 输入: "aaaba" 输出: 8 解释: 只含单一字母的子串分别是 ...

  5. LeetCode 828. 统计子串中的唯一字符(中心扩展)

    1. 题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数. 例如:s = "LEETCODE" ,则其中 &qu ...

  6. LeetCode 1277. 统计全为 1 的正方形子矩阵(DP)

    1. 题目 给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数. 示例 1: 输入:matrix = [[0,1,1,1],[1, ...

  7. C++描述 LeetCode 5677. 统计同构子字符串的数目

    C++描述 LeetCode 5677. 统计同构子字符串的数目   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写 ...

  8. LeetCode 2135. 统计追加字母可以获得的单词数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你两个下标从 0 开 ...

  9. leetcode 6184. 统计共同度过的日子数

    leetcode 6184. 统计共同度过的日子数 题目描述 Alice 和 Bob 计划分别去罗马开会. 给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 l ...

最新文章

  1. java中定义score方法_elasticsearch 自定义 script score JavaAPI查询详解
  2. 斯坦福大学马超:探寻「隐式偏差」的完整理论框架
  3. LeetCode Binary Tree Preorder Traversal(二叉树的前序遍历)
  4. real--复数的实数部分
  5. 每天学一点儿shell:linux常用快捷键
  6. 看了本书《答案在你心中》里面的很多问题都蛮有意思!!!
  7. spring集成多个rabbitMQ
  8. 信息学奥赛一本通(1002:输出第二个整数)
  9. java 父类返回子类是咧_【daily】Java泛型 - 返回父类的子类
  10. 如何做到在职场中清楚有效的沟通,成为一个靠谱的职场人?
  11. python正则匹配ip地址_python 正则表达式匹配IP地址
  12. eclipse基本操作
  13. 什么是传感器?不同类型的传感器及其应用
  14. 黑莓手机使用手册【转】
  15. html怎么设置字体的背景颜色,html怎样设置字体的背景颜色?
  16. SSL/TLS 受诫礼攻击漏洞的问题的解决记录
  17. 计组综合练习(期末复习大题部分适用)
  18. “不学数学就去当厨子”,兰大校友入选全球竞赛最强10人,决赛最后几小时才想起做题...
  19. 【Lilishop商城】No3-2.模块详细设计,系统设置(系统配置、行政区划、物流公司、滑块验证码图片、敏感词过滤)的详细设计
  20. java取模数,Java中的模数

热门文章

  1. html表格里的超链接点不了,Excel如何添加和取消超链接 Excel超链接打不开是怎么回事...
  2. android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...
  3. 在 Pycharm下使Python2和Python3共用Anaconda中的各种库/包的解决方法
  4. linux telnet 权限,允许telnet 通过root用户进行访问
  5. java 接口和抽象类的区别6_JAVA基础篇-接口和抽象类的区别
  6. 数据结构:神奇的B树实现解析(有图有代码有真相!!!)
  7. 地铁客流检测训练问题记录
  8. P2P中的NAT穿越方案简介
  9. 【转载】三极管,场效应管 工作原理小结
  10. 职业规划之后,还需要什么?职业规划与职业选择 - 续集