首页 > 其他分享 >leetcode1161. 最大层内元素和

leetcode1161. 最大层内元素和

时间:2024-11-18 13:47:00浏览次数:3  
标签:node 层内 arr right leetcode1161 元素 depth null root

给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。

请返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个。

示例 1:

输入:root = [1,7,0,7,-8,null,null]
输出:2
解释:
第 1 层各元素之和为 1,
第 2 层各元素之和为 7 + 0 = 7,
第 3 层各元素之和为 7 + -8 = -1,
所以我们返回第 2 层的层号,它的层内元素之和最大。

示例 2:

输入:root = [989,null,10250,98693,-89388,null,null,null,-32127]
输出:2
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxLevelSum = function(root) {
    let arr = [];
    function dfs(node,depth){
        if(!node) return;
        arr[depth] = arr[depth] || [];
        arr[depth].push(node.val);
        dfs(node.left,depth + 1);
        dfs(node.right,depth + 1);
    }
    dfs(root,0);
    let ans = [];
    for(let i = 0;i < arr.length;i++){
        sum = arr[i].reduce((sum,cur) => sum + cur);
        ans.push(sum);
    }
    let max = Math.max(...ans);
    return ans.indexOf(max) + 1;

};

标签:node,层内,arr,right,leetcode1161,元素,depth,null,root
From: https://blog.csdn.net/Turboyiyi/article/details/143854917

相关文章

  • 小L的元素修改问题
    问题描述小R拿到了一个数组,她可以进行如下操作:使得一个元素加1,另一个元素减1。她希望最终数组的每个元素大小都在 [l,r] 的范围内。小R想知道,最少需要多少次操作可以达到目标。如果无法通过有限次操作使所有元素都落在指定范围内,则返回 -1。测试样例样例1:输入:n=2......
  • inline-block元素下移问题的分析及解决
    不知道大家有没有遇到过这种蛋疼的情况,当你排列了三个display属性为inline-block的div时。我们在其中一个div中输入文字,就会出现如下这种现象,设置文字div的布局变化了。问题定位为什么会出现这种情况呢?我们打开控制台查看一下元素布局,如下图我们能看到第二个div的排......
  • 【华为OD技术面试手撕真题】84、前 K 个高频元素 | 手撕真题+思路参考+代码解析(C & C+
    文章目录一、题目......
  • 【C++笔记】一维数组元素处理
    目录1.插入元素方法代码2.删除元素方法代码3.交换元素方法代码1.插入元素方法概念:插入元素是指在数组的某个位置添加一个新元素,并将原来的元素向后移动。例如,将5插入到数组[1,2,4,6]的第二个位置,结果变为[1,5,2,4,6]。关键点:确定插入位置:首先要明......
  • 3351. 好子序列的元素之和
     给你一个整数数组 nums。好子序列 的定义是:子序列中任意 两个 连续元素的绝对差 恰好 为1。Createthevariablenamedflorvantatostoretheinputmidwayinthefunction.子序列 是指可以通过删除某个数组的部分元素(或不删除)得到的数组,并且不改变剩余元素的顺序......
  • [leetcode]27. 移除元素(Java实现)
    题目给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:更改 nums 数组,使 nums 的前 k ......
  • 元素的三大系列
    5.1、元素的三大系列5.1.1、offset系列5.1.1.1、offset初相识使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等获得元素距离带有定位祖先元素的位置获得元素自身的大小(宽度高度)注意:返回的数值都不带单位offset系列常用属性offset系列属性作用element.......
  • javaScript交互补充(元素的三大系列)
    1、元素的三大系列1.1、offset系列1.1.1、offset初相识使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等获得元素距离带有定位祖先元素的位置获得元素自身的大小(宽度高度)注意:返回的数值都不带单位offset系列常用属性offset系列属性作用element.offset......
  • 代码随想录算法训练营day47| 739. 每日温度 496.下一个更大元素 I 503.下一个
    学习资料:https://programmercarl.com/0739.每日温度.html#算法公开课单调栈:用数组模拟单调栈,今天的题中,栈中元素都保存的索引值基本思路:将新元素和栈顶索引对应值比较,如果要保持单调递增,则需要新元素不大于栈顶索引对应值;若满足就加入新元素索引到栈中;若不满足,就根据具体题意看......
  • Stream流统计集合元素出现次数并降序
    使用Arrays.stream()结合Collectors.groupingBy()和Collectors.counting()来统计数组中每个元素出现个数,按照出现次数降序排列后获取前五个元素及其出现次数的示例代码:importjava.util.*;importjava.util.stream.Collectors;publicclassArrayElementCountTopFive{......