当前位置: 首页 > news >正文

Leetcode—515.在每个树行中找最大值【中等】

2023每日刷题(二十三)

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

在这里插入图片描述

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 10003void 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.lryc.cn/news/222862.html

相关文章:

  • 安防监控系统EasyCVR平台设备通道绑定AI算法的功能设计与开发实现
  • element 弹窗浏览器后退-遮照层还存在问题 以及跟vue keep-alive冲突
  • C++(Qt)软件调试---自动注册AeDebug(17)
  • 云原生周刊:Gateway API 1.0.0 发布 | 2023.11.6
  • Java2 - 数据结构
  • 精解括号匹配问题与极致栈设计:揭开最大栈和最小栈的奥秘
  • 云存储/视频监控管理平台EasyCVR,使用sqlite数据库出现卡顿该如何优化?
  • 实战!工作中常用的设计模式
  • MySQL进阶_1.逻辑架构和SQL执行流程
  • 基于GCC的工具objdump实现反汇编
  • 排序算法的空间复杂度和时间复杂度
  • 【电路笔记】-基尔霍夫电路定律
  • 从零开始搭建React+TypeScript+webpack开发环境-基于axios的Ajax请求工具
  • 【uniapp小程序下载】调用uni.uploadfile方法在调试工具里是没有问题的,但是线上版本和体验版就调用不成功,真机调试也没问题
  • chatGLM中GLM设计思路
  • 卡牌游戏类型定制开发微信卡牌小程序游戏
  • web —— css(1)
  • 站群服务器的特性和好处是什么
  • 竞赛 行人重识别(person reid) - 机器视觉 深度学习 opencv python
  • 软件设计模式的意义
  • vue基础知识十八:说说你对keep-alive的理解是什么?
  • Linux CentOS配置阿里云yum源
  • ESP32网络开发实例-Web服务器以仪表形式显示传感器计数
  • @Bean有哪些属性
  • 【Qt之绘制兔纸】
  • JS+CSS随机点名详细介绍复制可用(可自己添加人名)
  • 西瓜书笔记
  • 学算法常用刷题网站
  • hdlbits系列verilog解答(always块条件语句)-37
  • 智能井盖生产商家,万宾科技井盖传感器产品详情