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

网站平台做捐助功能有风险吗关键词优化seo优化

网站平台做捐助功能有风险吗,关键词优化seo优化,域名注册的流程是什么,广宁城乡建设网站【LetMeFly】2583.二叉树中的第 K 大层和:层序遍历 排序 力扣题目链接:https://leetcode.cn/problems/kth-largest-sum-in-a-binary-tree/ 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k …

【LetMeFly】2583.二叉树中的第 K 大层和:层序遍历 + 排序

力扣题目链接:https://leetcode.cn/problems/kth-largest-sum-in-a-binary-tree/

给你一棵二叉树的根节点 root 和一个正整数 k

树中的 层和 是指 同一层 上节点值的总和。

返回树中第 k 大的层和(不一定不同)。如果树少于 k 层,则返回 -1

注意,如果两个节点与根节点的距离相同,则认为它们在同一层。

 

示例 1:

输入:root = [5,8,9,2,1,3,7,4,6], k = 2
输出:13
解释:树中每一层的层和分别是:
- Level 1: 5
- Level 2: 8 + 9 = 17
- Level 3: 2 + 1 + 3 + 7 = 13
- Level 4: 4 + 6 = 10
第 2 大的层和等于 13 。

示例 2:

输入:root = [1,2,null,3], k = 1
输出:3
解释:最大的层和是 3 。

 

提示:

  • 树中的节点数为 n
  • 2 <= n <= 105
  • 1 <= Node.val <= 106
  • 1 <= k <= n

方法一:层序遍历 + 排序

如果已经掌握了二叉树的层序遍历,那么这道题将会如鱼得水。

我们依然进行层序遍历,在层序遍历的过程中,计算每一层的节点值之和,并加入到一个数组中。

遍历结束后,对数组进行排序,返回第k大值或-1即可。

  • 时间复杂度 O ( N 1 + N 2 log ⁡ N 2 ) O(N1 + N2\log N2) O(N1+N2logN2),其中 N 1 N1 N1是二叉树节点个数, N 2 N2 N2是二叉树深度
  • 空间复杂度 O ( N 3 + N 2 ) O(N3 + N2) O(N3+N2),其中 N 3 N3 N3是最多一层的节点个数

时空复杂度也可以将全部的 N N N都视为二叉树节点个数。

AC代码

C++
typedef long long ll;
class Solution {
public:ll kthLargestLevelSum(TreeNode* root, int k) {vector<ll> values;queue<TreeNode*> q;q.push(root);while (q.size()) {ll cnt = 0;for (int _ = q.size(); _ > 0; _--) {TreeNode* thisNode = q.front();q.pop();cnt += thisNode->val;if (thisNode->left) {q.push(thisNode->left);}if (thisNode->right) {q.push(thisNode->right);}}values.push_back(cnt);}sort(values.begin(), values.end());return k > values.size() ? -1 : values[values.size() - k];}
};
Python

注意本题数据级别是 1 0 5 10^5 105,不能使用数组切片模拟队列的方式。

# # Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def kthLargestLevelSum(self, root: TreeNode, k: int) -> int:values = []q = [root]while q:cnt = 0thisLayer = qq = []for thisNode in thisLayer:cnt += thisNode.valif thisNode.left:q.append(thisNode.left)if thisNode.right:q.append(thisNode.right)values.append(cnt)values.sort()return values[len(values) - k] if len(values) >= k else -1

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/136252010

http://www.dinnco.com/news/52264.html

相关文章:

  • 做网站时分类标题和分类描述谷歌推广seo
  • 0基础做网站用什么语言创建一个网站
  • 一套小程序ui设计多少钱seo推广方式是什么呢
  • 网页制作团队重庆整站seo
  • 江门关键词优化排名seo技术是什么
  • 东阿聊城做网站的公司百度营销登录
  • 温州专业微网站制作电话推广方案策略怎么写
  • 品牌建设指导意见考拉seo
  • 怎么自己做个网站做链接跳转网络营销企业网站优化
  • 电子商务专业真的不好吗淘宝seo优化怎么做
  • dw做网站 后台用什么后台邵阳疫情最新消息
  • 美丽定制 网站模板网站收录一键提交
  • 真正做新闻网站关键词优化怎么做
  • 做网站网页需要什么软件站长工具平台
  • 万脑网站建设全自动在线网页制作
  • 泰安手机网站建设报价自己做的网址如何推广
  • 网站开发三个流程焦作关键词优化排名
  • 建设网站如何加入搜索国外搜索引擎大全百鸣
  • 湖南互联网公司seo商城
  • 彭干泉 网站开发百度官方免费下载
  • c 能和php一起做网站吗免费隐私网站推广
  • 长春 房地产网站建设百度竞价优化软件
  • 广州做网站 信科网络如何推广网页
  • 四川省城乡建设网站百度网盘私人资源链接
  • 北京做网站公司哪家好企业网站开发公司
  • 怎么删除网站里的死链接长尾关键词网站
  • 天河网站建设集团怎么注册网址
  • 网站备案 拍照软文营销的概念
  • 莱芜找工作网站百度分公司
  • 什么网站做二手货车微博热搜榜排名今日