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

赚钱平台网站WordPress判断用户角色

赚钱平台网站,WordPress判断用户角色,广东广州自己建网站公司,网站建设报价比较【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.yayakq.cn/news/933808/

相关文章:

  • 记录网站 自己做百度搜索软件
  • wordpress电影站主题木门行业网站该怎么做
  • 做视频网站要申请什么许可证海口网站设计公司
  • 做网站要有什么功能做网站技术路线
  • 简单的购物网站设计wordpress查看管理员密码
  • 如何自助建网站一站式建网站php网站系统
  • 建设外围彩票网站牡丹江47号公告
  • 关于春节的网站设计html都匀住房和城乡建设厅网站
  • 企业网站建设亮点北京百姓网免费发布信息
  • 内容电商的网站如何做英文 网站 字体
  • 公司英文网站wordpress文章列表页教程
  • 钓鱼网站如何做施工企业会计核算实务
  • 郑州做网站公司汉狮网公司做网站的多吗
  • 网站设计专业的公司网站建设页面页脚怎么设置
  • 做淘宝店招的网站软文营销的优势
  • 怎样提升网站流量网络建站网网络推广
  • 孝昌建设局网站网络营销网站建设诊断报告
  • 贵州省建设部网站网站建设开发收费
  • 政协信息化网站建设的请示龙华做企业网站
  • 教你如何建网站私域商城平台
  • 做网站需要的图片郑州做网站 熊掌号
  • h5调用小程序api做网站排名优化是怎么回事
  • 网站界面设计的表现wordpress 有赞云
  • 做网站一定要用到dw石家庄网络公司行业
  • 推广网站哪里好百度做网站的服务合同
  • 杭州网站建站模板门户网站建设方案模板
  • cps网站建设在哪个网站找水利工地做
  • 天津网站排名优化上海阔达网站建设公司
  • 天津市网站建设天津商城建设wordpress防攻击插件
  • 企业网站源码去一品资源网常州网站建设团队