代码随想录算法训练营DAY21 | 二叉树 (9)

一、LeetCode 669 修建二叉搜索树

题目链接:669.修建二叉搜索树icon-default.png?t=N7T8https://leetcode.cn/problems/trim-a-binary-search-tree/description/

思路:递归三部曲-定参数、返回值-定终止条件-定单层递归逻辑

class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if(root == null){return root;}if(root.val < low){//剪枝操作,root的左子树肯定都在区间之外,所以直接返回root的右子树return trimBST(root.right,low,high);}if(root.val > high){return trimBST(root.left,low,high);}//递归处理root.left = trimBST(root.left,low,high);root.right = trimBST(root.right,low,high);return root;}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

 二、LeetCode 108 将有序数组转换为二叉搜索树

题目链接:108.将有序数组转换为二叉搜索树icon-default.png?t=N7T8https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/

思路:分割数组 左闭右闭 递归造树

class Solution {public TreeNode sortedArrayToBST(int[] nums) {int n = nums.length;int left = 0;int right = n-1;return travel(nums,0,n-1);}public TreeNode travel(int[] nums, int left, int right){if(left > right){return null;}int index = left + (right-left)/2;TreeNode root = new TreeNode(nums[index]);//左闭右闭,中间节点已入树root.left = travel(nums, left, index-1);root.right = travel(nums, index+1, right);return root;}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

三、LeetCode 538 把二叉搜索树转换为累加树

题目链接:538.把二叉搜索树转换为累加树icon-default.png?t=N7T8https://leetcode.cn/problems/convert-bst-to-greater-tree/

思路:二叉搜索树的中序遍历结果是顺序数组->反中序遍历然后顺序累加可得结果

 

class Solution {//记录前一个节点的值int pre = 0;public TreeNode convertBST(TreeNode root) {travel(root);return root;}public void travel(TreeNode root){//按右中左遍历if(root == null){return;}travel(root.right);//累加求和 保存累加值pre += root.val;root.val = pre;travel(root.left);}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

四、小结

        恨残照,犹有一竿红、怪人催去早 \*AVA*/  $^*^$

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

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

相关文章

Sora了解资料

一、基本介绍 1.1sora 在 2024 年 2 月 16 日&#xff0c;Open AI 宣布推出全新的生成式人工智能模型“Sora”。据了解&#xff0c;通过文本指令&#xff0c;Sora 可以直接输出长达 60 秒的视频&#xff0c;并且包含高度细致的背景、复杂的多角度镜头&#xff0c;以及富有情感…

Prometheus+TDengine集群实现监控体系高可用

背景 为避免再次出现因Prometheus宕机导致业务无法查看历史数据受到影响&#xff0c;准备将Prometheus架构从单节点方式升级为高可用集群方式并将后端存储由本地存储改为远端分布式时序数据库存储。分布式时序数据库采用国产数据库TDengine。 架构 解释&#xff1a;虚线代表P…

Tuxera NTFS软件2024免费版本如何下载?

当然&#xff0c;以下是关于Tuxera NTFS的更多信息&#xff1a; Tuxera NTFS2024下载如下:https://wm.makeding.com/iclk/?zoneid58824 1. 易于使用和管理&#xff1a; Tuxera NTFS的界面设计简洁直观&#xff0c;用户无需复杂的设置和配置即可轻松上手。无论是对于普通用户…

机器视觉【3】非线性求解相机几何参数

线性求解相机几何参数的缺点 上一章节介绍学习了&#xff08;DLT&#xff09;线性求解相机几何参数&#xff0c;了解到线性求解法当中比较明显的缺点&#xff1a; 没有考虑到镜头畸变的影响不能引入更多的约束条件融入到DLT算法当中优化最关键的是&#xff0c;代数距离并不是…

Sora给中国AI带来的真实变化

OpenAI的最新技术成果——文生视频模型Sora&#xff0c;在春节假期炸裂登场&#xff0c;令海内外的AI从业者、投资人彻夜难眠。 如果你还没有关注到这个新闻&#xff0c;简单介绍一下&#xff1a;Sora是OpenAI使用超大规模视频数据&#xff0c;训练出的一个通用视觉模型&#x…

ClickHouse快速上手

简介 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) 官网(https://clickhouse.com/docs/zh)给出的定义&#xff0c;其实没看懂 特性 ClickHouse支持一种基于SQL的声明式查询语言&#xff0c;它在许多情况下与ANSI SQL标准相同。使用时和MySQL有点相似&#…

JAVA设计模式结构型模式

一、前言 java设计模式主要分为创建型模式&#xff0c;结构型模式和行为型模式。上一篇主要总结了行为型设计模式&#xff0c;本章总结&#xff0c;结构型模式。像创建型模式就不写了&#xff0c;比较简单。大概知道是工厂模式和建造者模式&#xff0c;原型模式就行&#xff0…

CTFHub技能树web之RCE(二)

第五题&#xff1a;远程包含 根据题目&#xff0c;使用远程包含进行 打开phpinfo&#xff0c;可以看到allow_url_fopen和allow_url_include都是On&#xff0c;因此可以使用php://input&#xff0c;由于代码会检查file中的内容&#xff0c;因此不能够使用php://filter包含文件&a…

Unreadable-Mesh内存占用翻倍问题

1&#xff09;Unreadable-Mesh内存占用翻倍问题 2&#xff09;在TMP中计算书名号《》高度的问题 3&#xff09;Mipmap如何限定层级 4&#xff09;FMOD设置中关于Virtual Channel Count&Real Channel Count的参数疑问 这是第374篇UWA技术知识分享的推送&#xff0c;精选了UW…

STM32使用软件SPI协议操作TFT18彩屏

时间记录&#xff1a;2024/2/20 一、SPI协议介绍 &#xff08;1&#xff09;SPI设备通过4根线进行通信&#xff0c;CS片选线&#xff0c;选择从设备&#xff0c;SCK时钟线&#xff0c;由主设备产生时钟&#xff0c;主机MOSI线连从机MISO线&#xff0c;由主机向从机发送信息&am…

CMake与vs的配置对应(常规->附加包含目录,链接器->输入)

常规->附加包含目录 对应CMake的 include_directories(${QT_PATH}/include) 写在 add_executable 前面 链接器->输入 对应CMake的 target_link_libraries(${PROJECT_NAME} xx.lib) 写在 add_executable 后面

微服务—DSL基础语法与RestClient操作

本博客为个人学习笔记&#xff0c;学习网站&#xff1a;黑马程序员SpringCloud 2021教程 目录 DSL语法 索引库操作 mapping属性 创建索引库 字段拷贝 查询、删除、修改索引库 文档操作 新增文档 查询、删除文档 修改文档 全量修改 增量修改 DSL文档语法小结 Rest…

Gin框架: 通用方法的封装与上传功能的应用

通用方法模块的设计 通用的方法可以定义在一个模块里&#xff0c;以方便调用&#xff0c;无需重复造轮子一般可以设计一个顶层的 models 包来承载公共方法 models 包 package modelsimport ("crypto/md5""encoding/hex""math/rand""time&…

机器学习基础(三)监督学习的进阶探索

导语&#xff1a;上一节我们深入地探讨监督学习和非监督学习的知识&#xff0c;重点关注它们的理论基础、常用算法及实际应用场景&#xff0c;详情可见&#xff1a; 机器学习基础&#xff08;二&#xff09;监督与非监督学习-CSDN博客文章浏览阅读769次&#xff0c;点赞15次&a…

strings.xml补充知识

复数名词 <plurals name"book"><item name"one">book</item><item name"others">books</item> </plurals>int bookCount 4; Resources res getResources(); String bookCount res.getQuantityString(R.…

webpack打包速度优化思维导图

webpack打包速度优化思维导图 前言附件 前言 去年的时候公司一个项目体积过大&#xff0c;我是m1芯片的macpro&#xff0c;光启动就要1分钟&#xff0c;配置差点都电脑&#xff0c;启动就要3分钟&#xff0c;自然打包速度也会慢很多&#xff0c;我们是gitlab设置成了自动打包的…

phar反序列化原理及利用

phar是什么&#xff1f; phar 是 PHP 的一种归档文件格式&#xff0c;类似于 ZIP 或 TAR 文件&#xff0c;它可以包含多个文件和目录&#xff0c;并且可以像访问普通文件系统一样在 PHP 中进行访问。在php 5.3 或更高版本中默认开启 在php.ini中配置如下时&#xff0c;才能生成…

Latent Diffusion Models / Stable Diffusion(LDM)

High-Resolution Image Synthesis with Latent Diffusion Models&#xff08;CVPR 2022&#xff09;https://arxiv.org/abs/2112.10752latent-diffusionstable-diffusion cross-attention&#xff08;用于多模态任务&#xff09; Cross-attention vs Self-attention&#xff…

iOS整理 - 关于直播 - 搭建服务端

前言 其实本人一直都想自己简单做一套直播&#xff08;包括移动端和服务端&#xff09;的开发测试&#xff0c;但是之前一直做得比较迷茫。最近偶然间在来了灵感&#xff0c;瞬间解除了我很多疑惑。我会分享出来&#xff0c;希望大家一起研究下。稍后&#xff0c;我完整做好了…

《Solidity 简易速速上手小册》第10章:区块链项目实战(2024 最新版)

文章目录 10.1 分析真实的 Solidity 项目10.1.1 基础知识解析进一步的知识探索实际操作技巧 10.1.2 重点案例&#xff1a;去中心化预测市场案例 Demo&#xff1a;创建去中心化预测市场案例代码PredictionMarket.sol - 智能合约前端界面 测试和验证拓展功能 10.1.3 拓展案例 1&a…