leetcode 1161(BFS)

1161: 最大层内元素和

思路:本题需要计算每一层的节点值之和,适合用 BFS。

二叉树结构:

复制代码
Definition for a binary tree node.
struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

维护两个信息:最大层和 maxSum,以及对应的层号 ans。如果当前层的和大于 maxSum,那么更新 maxSum 和 ans。

复制代码
auto tmp=q;
复制代码
class Solution {
public:
    int maxLevelSum(TreeNode* root) {
        int max_sum=INT_MIN;
        int ans=0;
        vector<TreeNode*> q={root}; //BFS
        for(int level=1;!q.empty();level++){
            auto tmp=q;
            q.clear();
            int s=0;

            for(auto node:tmp){
                s+=node->val;
                if(node->left) q.push_back(node->left);
                if(node->right) q.push_back(node->right);
            }
            if(s> max_sum){
                max_sum=s;
                ans=level;
            }
        }

        return ans;
    }
};
相关推荐
Pniubi4 分钟前
快速排序(力扣基础)(递归)
java·数据结构·算法
roman_日积跬步-终至千里21 分钟前
【数据Agent论文·分析与报告评测|27】ComInsight:原子洞察正确,组合后的结论就可靠吗?
人工智能·算法·机器学习·数据分析
Samson Bruce38 分钟前
【数学之美】
线性代数·算法·概率论
Mister Leon1 小时前
Nvidia Orin AGX实战之从量化到蒸馏:在 Orin 上落地的大模型压缩实战
人工智能·算法·机器学习
aqiu1111111 小时前
蓝桥杯真题复盘:Fibonacci 数列与黄金分割(C++ 算法详解)
c++·算法·蓝桥杯
phoenix@Capricornus1 小时前
LDA 协方差矩阵(MATLAB `fitcdiscr`)
算法·matlab·矩阵
青少儿编程课堂1 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会C/C++考级:拓扑排序课程表排课解析
c++·python·算法·bfs·信息学竞赛
inrichtt10 小时前
第八课时:SPI总线揭秘:四线全双工通信的奥
c语言·数据结构·stm32·单片机·嵌入式硬件
HPtiger11 小时前
数据结构——选择排序
数据结构·算法·排序算法
康实训11 小时前
老年评估仿真实训平台架构设计与老年人能力评估实训室教学落地实践
大数据·人工智能·算法·实训室·实训室建设