2024.2.23力扣每日一题——二叉树中的第 K 大层和

2024.2.23

题目来源

力扣每日一题;题序:2583

我的题解

方法一 层序遍历+排序

先使用层序遍历计算每一层的和,然后将每一层的和进行排序。
时间复杂度 :O(nlogn)。其中 n 是树中的节点数。广度优先搜索消耗 O(n),一次排序消耗 O(n×log⁡n)。
空间复杂度:O(n)

java 复制代码
public long kthLargestLevelSum(TreeNode root, int k) {
    Queue<TreeNode> queue=new LinkedList<>();
    queue.offer(root);
    List<Long> sum=new ArrayList<>();
    while(!queue.isEmpty()){
        int sz=queue.size();
        long cur_sum=0;
        for(int i=0;i<sz;i++){
            TreeNode t=queue.poll();
            cur_sum+=t.val;
            if(t.left!=null){
                queue.offer(t.left);
            }
            if(t.right!=null)
                queue.offer(t.right);
        }
        sum.add(cur_sum);
    }
    if(sum.size()<k)
        return -1;
    sum.sort((a,b)->b.compareTo(a));
    return sum.get(k-1);
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐
highreport1 分钟前
net报表工具对比:HighReport 与 FastReport
java·c#
小玮看世界6 分钟前
[Python]螺旋遍历 vs 最短路径:方向控制类算法的“同源异流”
开发语言·python·算法
月华路12 分钟前
《模型不玄学》第14章 标签、损失与样本权重
人工智能·算法·机器学习
黄金龙PLUS13 分钟前
SPARKLE置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
不会就选b14 分钟前
算法日常・每日刷题--<贪心>3
数据结构·算法·leetcode
xiaoqiMikko14 分钟前
七条 advisory 各给了一个修复版,而一次修完的那个数字一条都没写
java·spring boot
vHelios14 分钟前
【电商项目】短信测试遇到的问题与解决方案:InaccessibleObjectException报错、单元测试通过但未接收到验证码
java·微服务
ysu_031415 分钟前
03-双链表与循环链表
c语言·数据结构·链表
学习星球17 分钟前
编辑距离——二维 DP 的“最小操作“艺术
c++·leetcode·java-consul
气泡水好喝19 分钟前
Java魔法探秘:从Java代码到CPU指令,一个方法调用的完整生命周期
java