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);
}

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

相关推荐
jghhh0119 小时前
使用 MATLAB 实现支持向量回归 (SVR) 预测未来数据
算法·matlab
云泽80819 小时前
笔试算法 - 双指针篇(二):四大经典求和题型 + 有效三角形计数问题
c++·算法
qeen8721 小时前
【数据结构】树的基本概念及存储
c语言·数据结构·c++·学习·
Java小生不才21 小时前
spring AI文生图
java·人工智能·spring ai
苍煜21 小时前
ThreadPoolExecutor线程池终极全解:同步异步判定+SpringBoot生产实战
java·开发语言·spring boot
一江寒逸21 小时前
数据结构与算法之美:串(字符串)——从基础操作到KMP模式匹配,吃透面试最高频的字符串考点
数据结构·面试·职场和发展
刀法如飞21 小时前
【合并已排序数组的三种实现策略,哪一种更可取?】
算法·程序员
王老师青少年编程21 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【区间贪心】:种树
c++·算法·贪心·csp·信奥赛·区间贪心·种树
hi_ro_a21 小时前
C++ 哈希表封装 unordered_map /unordered_set
数据结构·c++·算法·哈希算法
c++之路21 小时前
C++ 动态内存
java·jvm·c++