Leetcode—剑指OfferII LCR 044.在每个树行中找最大值【中等】

news2024/11/26 11:52:22

2023每日刷题(二十三)

Leetcode—LCR 044.在每个树行中找最大值

在这里插入图片描述

DFS实现代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
#define MAX(a, b) ((a > b ? (a) : (b)))
#define MAXSIZE 10003

void dfs(int *res, int cur, int *pos, struct TreeNode* root) {
    if(*pos == cur) {
        res[(*pos)++] = root->val;
    } else {
        res[cur] = MAX(res[cur], root->val);
    }
    if(root->left) {
        dfs(res, cur + 1, pos, root->left);
    }
    if(root->right) {
        dfs(res, cur + 1, pos, root->right);
    }
}

int* largestValues(struct TreeNode* root, int* returnSize) {
    *returnSize = 0;
    if(root == NULL) {
        return NULL;
    }
    int *res = (int *)malloc(sizeof(int) * MAXSIZE);
    dfs(res, 0, returnSize, root);
    return res;
}

运行结果

在这里插入图片描述

BFS实现代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
#define MAXSIZE 10003
#define MAX(a, b) ((a > b) ? (a) : (b))

int* largestValues(struct TreeNode* root, int* returnSize){
    struct TreeNode **queue = (struct TreeNode **)malloc(sizeof(struct TreeNode*)*MAXSIZE);
    *returnSize = 0;
    int *res = (int *)malloc(sizeof(int)*MAXSIZE);
    if(root == NULL) {
        return NULL;
    }
    int pos = 0;
    int front = 0, rear = 0;
    int len = 0;
    queue[rear++] = root;
    while(front != rear) {
        len = rear - front;
        int maxVal = INT_MIN;
        while(len > 0) {
            len--;
            struct TreeNode *tmp = queue[front++];
            maxVal = MAX(maxVal, tmp->val);
            if(tmp->left) {
                queue[rear++] = tmp->left;
            }
            if(tmp->right) {
                queue[rear++] = tmp->right;
            }
        }
        res[pos++] = maxVal;
    }
    *returnSize = pos;
    free(queue);
    return res; 
}

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1186373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go 面向对象,多态,基本数据类型

程序功能解读 第一行为可执行程序的包名,所有的Go源文件头部必须有一个包生命语句,Go通过包名来管理命名空间。 第三行import是引用外部包的说明 func关键字声明定义一个函数,如果是main则代表是Go程序入口函数 Go源码特征解读 源程序以.g…

【MySQL数据库】 五

本文主要介绍了如果根据表之间的关系设计表,以及mysql的聚合/分组/联合查询. 一.表的设计 实体和关系的四种关系 1.一对一 一个账号只能对应一个学生; 一个学生只能有一个账号; 比如:账号表和学生是一对一的关系 * 可以在账号表中引入学生id * 也可以在学生表中引入账号id…

能链智电,“重”症在身

文 | 智能相对论 作者 | 陈选滨 在过去的1-9月,充电基础设施增量为243.2万台,新能源汽车销量627.8万辆,充电桩与新能源汽车的增量比为1:2.6,距离工信部此前提出“2025年实现车桩比2:1,2030年实现车桩比1:…

自主SSL品牌—JoySSL

JoySSL是一家为数不多的中国自主品牌SSL证书服务厂商,是自研推出的新一代https数字证书。 它不仅有着自己品牌JoySSL,还拥有着国内外绝大数主流证书品牌,遍寻诚意伙伴,单域名证书都是不限年限、不限证书张数不限量提供。 目前了…

C语言——计算n的阶乘

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int i;int n 0;int s1;scanf("%d",&n);for(i1; i<n; i){s*i;}printf("s%d\n",s);return 0; }

HP电脑主机清除BIOS密码

HP电脑主机清除BIOS密码 重装系统肯定不能清除BIOS密码的。 拔掉电池一般也只能是将BIOS设定恢复出厂。 台式机需要清除BIOS密码&#xff0c;一般是主机板上会有对应的跳线&#xff0c; 关机&#xff0c;记住跳线的预设位置&#xff0c;拔掉跳线&#xff0c;重新开机&#x…

于道 - 前端项目启动步骤参考

1. 安装 启动过程有9个步骤&#xff1a; 1.1 安装 Node JS , V18版本的 &#xff08;安装步骤省略&#xff09; 1.2 安装 npm install -g yarn &#xff0c;node JS里边好像自带npm &#xff0c;通过npm的命令安装 yarn 1.3 切换到项目中去安装&#xff0c;npm install &a…

C++初阶 | [二] 类和对象(上)

摘要&#xff1a;class&#xff0c;成员函数&#xff0c;成员变量&#xff0c;类的大小&#xff0c;this 指针 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象…

吃啥大转盘

经常跟朋友出去吃饭&#xff0c;选择太困难了所以写了个简单的转盘&#xff0c;直接copy到txt文本然后把文件后缀改成html即可。 需要换食物直接在文件中找到 list 值按照格式替换一下即可。 效果&#xff1a; 代码块&#xff1a; <html><head><meta http-…

软件测试简历原来是写了这些才让面试官已读不回

前言&#xff1a; 马上就到了面试跳槽涨薪好时候了&#xff0c;最近看很多的小伙伴已经开始投简历了&#xff0c;一天投了几十次几百次&#xff0c;面试官已读不会&#xff0c;面试的机会都没有更别说后面的事情的&#xff0c;这是为什么呢&#xff1f; 很大一部分的原因是的…

内网穿透工具之花生壳(二)

目录 开始教程 第一步&#xff1a;进入管理官网&#xff0c;注册并登录账号 第二步&#xff1a;进入 管理页面 第三步&#xff1a;添加映射表&#xff0c;然后填写一下基本内容 总结&#xff1a;emmm,反正都很快上手&#xff0c;但是这个就免费1G流量,这个免费的还是https…

开发知识点-NodeJs-npm/Pnpm/Vite/Yarn包管理器

包管理器 vue-cli-service 不是内部或外部命令&#xff0c;也不是可运行的程序npm 全局变量pnpmPnpm介绍ViteYarn ‘vue-cli-service’ 不是内部或外部命令&#xff0c;也不是可运行的程序 yarn yarn add vue-amap yarn add vue-amap ant-design-vue npm 全局变量 换主机 新…

掌动智能:云可观测性的主要特点及应用场景

云全景可观测性安全平台是一个跨架构、跨平台的可观测性方案&#xff0c;实现对云环境下的细粒度数据可视化&#xff0c;满足安全部门对云内部安全领域的多场景诉求&#xff0c;包括敏感数据动态监管、云网攻击回溯分析、攻击横移风险监控、云异常流量分析。本文将介绍掌动智能…

vue:如何实现通过判断数组中每个对象的其中一个属性,从而更改另一个属性的值

1、假设一个box为一个包含多个对象的数组&#xff0c;这个box数组可以在方法中定义也可以在data域中定义 let box [{ id: 1, status: 审批中 },{ id: 2, status: 已通过 },{ id: 3, status: 未通过 } ];2、在methods域中写一个方法遍历这个box数组判断每个对象中的status属性是…

【原创】java+swing+mysql校园零食商城设计与实现

摘要&#xff1a; 本文探讨了一个校园零食商城的设计与实现&#xff0c;校园零食商城的设计与实现旨在为学生提供一个方便、快捷的在线购买零食的环境&#xff0c;同时提高商家的销售效率和客户满意度。通过不断优化和完善系统&#xff0c;相信可以为校园内的学生和商家带来更…

接口自动化面试题

1.http请求都包含哪些内容&#xff0c;请求头和请求体有哪些内容 请求行/请求头/请求体/空行 请求行&#xff1a;请求方法字段、URL字段、http协议版本 例如&#xff1a;GET /index.html HTTP/1.1 请求方法&#xff1a;GET、POST、PUT、DELETE、OPTIONS、TRACE、CO…

【PG】PostgreSQL13主从流复制部署(详细可用)

目录 版本 部署主从注意点 1 主库上创建复制用户 2 主库上修改pg_hba.conf文件 3 修改文件后重新加载配置使其生效 4 主库上修改配置文件 5 重启主库pg使参数生效 6 部署从库 7 备份主库数据至从库 停止从库 备份从库的数据库目录 新建数据库数据目录data 创建和…

干货 | 接口自动化测试分层设计与实践总结

接口测试三要素&#xff1a; 参数构造 发起请求&#xff0c;获取响应 校验结果 一、原始状态 当我们的用例没有进行分层设计的时候&#xff0c;只能算是一个“苗条式”的脚本。以一个后台创建商品活动的场景为例&#xff0c;大概流程是这样的(默认已经是登录状态下)&#…

Python--快速入门三

Python--快速入门三 1.Python列表 列表是Python用于储存一系列数据的容器(特点是可以存放不同类型的数据) python_list ["键盘",True,66,88.8] 列表是可变数据类型&#xff0c;可以直接对列表中的元素进行更改而不需要赋值给本身 列表方法&#xff1a; 1.appen…

纯干货:赝势的选择 | VASP计算入门教程,真的超级有用

VASP软件是基于贋势和平面波基组的第一性原理密度泛函计算程序。VASP使用的是平面波基组&#xff0c;电子与原子核之间的相互作用使用投影缀加波贋势&#xff08;Projector Augmented Wave&#xff0c;PAW&#xff09;方法描述&#xff0c;从而进行量子力学计算。VASP采用PAW贋…