当前位置: 首页 > news >正文

网站建设公司销售前景百度站长平台官网

网站建设公司销售前景,百度站长平台官网,省交通建设质安监督局网站,公司名字大全3个字2049. 统计最高分的节点数目题目算法设计:深度优先搜索题目 传送门:https://leetcode.cn/problems/count-nodes-with-the-highest-score/ 算法设计:深度优先搜索 这题的核心是计算分数。 一个节点的分数 左子树节点数 右子树节点数 除自…

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

    • 题目
    • 算法设计:深度优先搜索

 


题目

传送门:https://leetcode.cn/problems/count-nodes-with-the-highest-score/

 


算法设计:深度优先搜索

这题的核心是计算分数。

一个节点的分数 = 左子树节点数 × 右子树节点数 × 除自己外其他节点数。如下图:

删除某个节点之后,最多会把二叉树分割成 三个部分 :左子树、右子树、父节点及父节点的另一半子树(除自己外其他节点个数)。

使用 DFS 算出左子树节点数、右子树节点数。

因为知道树节点的总数,再计算除自己外其他节点个数。

  • 除自己外其他节点个数 = 总数 - 1 - 左子树节点数 - 右子树节点数。

具体怎么解呢?

一个节点的分数 = 左子树节点数 × 右子树节点数 × 除自己外其他节点数

  • 一是,需要清晰左子树节点数、右子树节点数,再通过总数 - 左右子树数 - 1,得到除自己外其他节点数

  • 二是,三个数量都有了之后,相乘就是删除这个节点之后的分数,当然,这里有可能三个部分中缺失一部分或者两部分,缺失的部分用 1 来代替去相乘。

  • 最终表达式:一个节点的分数 = 左子树节点数 × 右子树节点数 × (总数 - 左右子树数 - 1)

int dfs(vector<vector<int>> &tree, vector<long> &s, int i) { long score = 1, sum = 1;                                       // 分数,节点总数,设置为long防止溢出for (int j : tree[i]) {                                        // 遍历i所有子节点int cnt = dfs(tree, s, j);                                 // 得出子树节点个数score *= cnt, sum += cnt;                                  // 计算左右子树的得分,同时计算节点总数,累计每个子树节点数量和。因为分数等于三块的乘积,可同时计算节点数量、分数} s[i] = score * (max(1ll, (long)tree.size() - sum));            // 一个节点分数 = 左子树节点数 × 右子树节点数 × (总数 - 左右子树数 - 1)。1ll是把1改成long long类型return i != 0 ? sum : count(begin(s), end(s), *max_element(begin(s), end(s)));    // *max_element查询最大分数,count统计最大分数的个数
} 
int countHighestScoreNodes(vector<int>& parents) {                 // 题目给的 parents 数组不是树,先建树int n = parents.size();vector<vector<int>> tree(n);                                   // 用数组存储树vector<long> s(n); for (int i = 1; i < n; ++i) tree[parents[i]].push_back(i);     // 根据parents建树,tree[i]存储i的子节点return dfs(tree, s, 0);                                        // 在图上dfs计算分数
}
http://www.tj-hxxt.cn/news/66664.html

相关文章:

  • 原创网站设计南宁今日头条最新消息
  • 网站持有者和备案企业搜索引擎营销与seo优化
  • 宣武做网站搜索引擎广告投放
  • 要怎么做自己的网站视频教学阿里网站seo
  • 天津市网站制作 公司怎么做私人网站
  • discuz网站同步爱论坛
  • 网站关站怎么做电商卖东西
  • 平台网站怎么做的湘潭网站建设
  • 网站没有收录网络营销推广的手段
  • 建视频网站模板服务营销的七个要素
  • 90平方设计山西seo优化
  • 济南网站设计公司排名推广方案设计
  • 做网站需要懂什么技术如何推广网址链接
  • 做旅游网站设计的感想提高搜索引擎检索效果的方法
  • 机构网站建设全国疫情最新报告
  • 闵行网站建设外包国外免费推广网站有哪些
  • 招生网站转换率低免费二级域名平台
  • 这样做网站推广网络优化工程师是做什么的
  • 国内网站建设阿里云seo的培训网站哪里好
  • 网站做以后怎么修改网站内容seo门户
  • 今日国内新闻最新消息观后感seo下拉优化
  • 东莞市住房和城乡建设厅网站厦门关键词优化报价
  • 源码如何做网站app推广方式
  • 建设网站专业公司哪家好发布信息的免费平台
  • 合肥网站设计公司seo网站推广优化就找微源优化
  • 怎么用linux做网站2024年阳性什么症状
  • 做网站的网页seo网络营销公司
  • 网站开发如何入门品牌如何推广
  • 哪里可以做足球网站谷歌浏览器网页版入口
  • 手机网站设计公司优选亿企邦百度指数的作用