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

leetcode1161最大层内元素之和

时间:2023-09-05 15:15:13浏览次数:45  
标签:层内 return leetcode1161 元素 dfs int depth ans root

  • dfs
    lass Solution {
    public:
        unordered_map<int,vector<int>>m;
        void dfs(TreeNode* root,int depth){
            if(!root)return;
            int res=0;
            depth++;
            dfs(root->left,depth);
            dfs(root->right,depth);
            res+=root->val;
            m[depth].push_back(res);
        }
        int maxLevelSum(TreeNode* root) {
          dfs(root,0);
          int depth=0;
          int ans=1<<31;
          for(const auto&v :m){
              int size=v.second.size();
              int res=0;
              for(int i=0;i<size;i++){
                  res+=v.second[i];
              }
              if(res>ans){
                  ans=res;
                  depth=v.first;
              }
          }
          return depth;
        }
    };

    表示最小或最大值方法(以int四字节为例)

  • MaxInt=(1<<31)-1;
  • MinInt=1<<31;

queue入队时使用push();vector是使用push_back()

每层递归记录层号,要是第一次访问这个层就将数据放进每层的元素和中,不是第一次就加上这个元素得到新的层元素和。

vector<int>Sum;
void dfs(TreeNode* root,int depth){
    if(!root)return;
    if(depth==Sum.size()){
        Sum.push_back(root->val);
    }else{
        Sum[depth]+=root->val;
    }
    dfs(root->left,depth+1);
    dfs(root->right,depth+1);
}
int maxLevelSum(TreeNode* root){
    dfs(root,0);
    int ans=1<<31;
    int depth=0;
    for(int i=0;i<Sum.size();i++){
        if(Sum[i]>ans){
            ans=Sum[i];
            depth=i+1;
        }
    }
    return depth;
}

 

标签:层内,return,leetcode1161,元素,dfs,int,depth,ans,root
From: https://www.cnblogs.com/wangkaixin-yy/p/17679670.html

相关文章

  • List 删除指定区域的元素
    List删除指定区域的元素Thereturnedlistisbackedbythislist,sonon-structuralchangesinthereturnedlistarereflectedinthislist,andvice-versa.简单来说,对子List的任何操作,都会同步影响到原来的父List数据。而对父List的元素做了操作,同样会subList获取的......
  • 直播平台制作,WebDriver API 拖拽页面元素
    直播平台制作,WebDriverAPI拖拽页面元素 importorg.testng.annotations.Test;importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.chrome.ChromeDriver;importorg.openqa.selenium.int......
  • JS 追加元素的几种办法
    JS追加元素的几种办法append(),在父级最后追加一个子元素appendTo(),将子元素追加到父级的最后prepend(),在父级最前面追加一个子元素prependTo(),将子元素追加到父级的最前面after(),在当前元素之后追加(是同级关系)before(),在当前元素之前追加(是同级关系)insertAfter(),将元素追......
  • 【群答疑】jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为
    一个非常不错的问题,来检验下自己jmeter基本功 可能有同学没看懂题,这里再解释一下,上面问题需求是:jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为下一个请求的入参 建议先自己思考,如果2小时没做出来,可以参考文末评论区的实现思路(仅登录后可见) ......
  • 203. 移除链表元素
    前些日子在翻译论文,检查语法润色啥的。然后跟导师一起修改,前几天终于投了出去,现在可以回到正常的节奏上来了。先看看题吧给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val==val 的节点,并返回新的头节点 。示例1:输入:head=[1,2,6,3,4,5,6],va......
  • js怎么删除数组元素多种方法
    1.根据索引删除数组元素delete数组[索引]  vararr1=["aa","bb","cc","dd"];deletearr1[2];运行之后:arr=["aa","bb",undefined,"dd"];delete  它是将内容删除为空,但是元素的个数不变2.根据元素内容直接删除数组元素splice(inde......
  • 【 LeetCode题解 】203. 移除链表元素
    【LeetCode题解】203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/博客主页链接:DuckBro博客主页关注博主,后期持续更新系列文章***感谢观看,希望对你有所帮助***目录【LeetCode题解】203.移除链表元素......
  • 软件测试 | Selenium验证页面元素
    验证页面上的UI元素,是你在自动化测试案例过程中最常用到的特性。Selenese允许通过多种方式验证UI元素。了解这些不同验证方式非常重要,因为它们决定了你实际正在测试什么。举例,你是否正在测试如下情况:(1)一个UI元素存在于页面上某个位置;(2)特别稳定存在于页面上某个位置;(3)特定文本存在于......
  • Go开始:Go基本元素介绍
    本文深入探讨了Go编程语言中的核心概念,包括标识符、关键字、具名函数、具名值、定义类型、类型别名、包和模块管理,以及代码块和断行。这些元素是构成Go程序的基础,也是编写高质量代码的关键。关注TechLeadCloud,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服......
  • 前端歌谣的刷题之路-第十二题-伪元素
     目录前言题目核心代码总结前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网......