代码随想录算法训练营DAY19 | 二叉树 (6)
一、LeetCode 654 最大二叉树
题目链接:654.最大二叉树
https://leetcode.cn/problems/maximum-binary-tree/
思路:坚持左开右闭原则,递归划分数组元素生成左右子树。
class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return travel(nums,0,nums.length);}//坚持左闭右开public TreeNode travel(int[] nums, int left, int right){//空数组,返回空值if(right - left < 1){return null;}//数组只有一个元素,为叶子节点if(right - left == 1){return new TreeNode(nums[left]);}//找到数组中的最大元素及其下标int maxIndex = left;int maxValue = nums[left];for(int i = left+1; i < right; i++){if(nums[i] > maxValue){maxIndex = i;maxValue = nums[i];}}TreeNode node = new TreeNode(nums[maxIndex]);//划分数组生成左右子树node.left = travel(nums,left,maxIndex);node.right = travel(nums,maxIndex+1,right);return node;}
}
/*** 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 617 合并二叉树
题目链接:617.合并二叉树
https://leetcode.cn/problems/merge-two-binary-trees/submissions/502582353/
思路:前序递归遍历,处理空节点情况~
class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {//处理root1和root2节点为空的情况if(root1 == null && root2 == null){return null;}if(root1 != null && root2 == null){return root1;}if(root1 == null && root2 != null){return root2;}//建立新节点TreeNode root = new TreeNode(root1.val + root2.val);//中、左、右递归遍历root.left = mergeTrees(root1.left,root2.left);root.right = mergeTrees(root1.right,root2.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 700 二叉树中的搜索
题目链接:700.二叉树中的搜索
https://leetcode.cn/problems/search-in-a-binary-search-tree/
思路:前序遍历,非左即右~
class Solution {public TreeNode searchBST(TreeNode root, int val) {//找到空节点,说明该路径上没有符合条件的节点if(root == null){return null;}//找到符合条件的节点if(root.val == val){return root;}//前序遍历 中、左、右TreeNode left = searchBST(root.left,val);TreeNode right = searchBST(root.right,val);//非左即右return left == null ? right : 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;* }* }*/
四、小结
静心刷题ovo
相关文章:
代码随想录算法训练营DAY19 | 二叉树 (6)
一、LeetCode 654 最大二叉树 题目链接:654.最大二叉树https://leetcode.cn/problems/maximum-binary-tree/ 思路:坚持左开右闭原则,递归划分数组元素生成左右子树。 class Solution {public TreeNode constructMaximumBinaryTree(int[] num…...
【C++】实现Date类的各种运算符重载
上一篇文章只实现了operator操作符重载,由于运算符较多,该篇文章单独实现剩余所有的运算符重载。继续以Date类为例,实现运算符重载: 1.Date.h #pragma once#include <iostream> #include <assert.h>using namespace …...
【Linux】程序地址空间 -- 详解 Linux 2.6 内核进程调度队列 -- 了解
一、程序地址空间回顾 在学习 C/C 时,我们知道内存会被分为几个区域:栈区、堆区、全局/静态区、代码区、字符常量区等。但这仅仅是在语言层面上的理解,是远远不够的。 如下空间布局图,请问这是物理内存吗? 不是&…...
10-通用类型、特质和生命周期
上一篇: 09-错误处理 每种编程语言都有有效处理概念重复的工具。在 Rust 中,泛型就是这样一种工具:具体类型或其他属性的抽象替身。我们可以表达泛型的行为或它们与其他泛型的关系,而不需要知道在编译和运行代码时它们的位置。 函…...
STM32CubeMX,定时器之定时功能,入门学习,如何设置prescaler,以及timer计算PWM输入捕获方法(重要)
频率变小,周期变长 1,参考链接(重要) STM32CubeMX——定时器之定时功能(学习使用timer定时器的设置) STM32测量PWM信息(学习使用设置pwm输入捕获) 通用定时器中两个重要参数的设置心…...
蓝桥杯:C++队列、优先队列、链表
C普通队列 算法竞赛中一般用静态数组来模拟队列,或者使用STL queue。使用C的STL queue时,由于不用自己管理队列,因此代码很简洁。队列的部分操作如下。 C优先队列 很多算法需要用到一种特殊的队列:优先队列。它的特点是最优数据…...
【C语言】长篇详解,字符系列篇1-----“混杂”的各种字符类型字符转换和strlen的模拟实现【图文详解】
欢迎来CILMY23的博客喔,本期系列为【C语言】长篇详解,字符系列篇1-----“混杂”的各种字符函数……,图文讲解各种字符函数,带大家更深刻理解C语言中各种字符函数的应用,感谢观看,支持的可以给个赞哇。 前言…...
2024年【高处安装、维护、拆除】考试总结及高处安装、维护、拆除考试技巧
题库来源:安全生产模拟考试一点通公众号小程序 高处安装、维护、拆除考试总结根据新高处安装、维护、拆除考试大纲要求,安全生产模拟考试一点通将高处安装、维护、拆除模拟考试试题进行汇编,组成一套高处安装、维护、拆除全真模拟考试试题&a…...
开源无处不在,发展创新下又有何弊端
随着信息技术的快速发展,开源软件已经成为软件开发的趋势,并产生了深远的影响。开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开源软件,促进了软件行业的繁荣。然而,在使用开源软件的过…...
LeetCode 0429.N 叉树的层序遍历:广度优先搜索(BFS)
【LetMeFly】429.N 叉树的层序遍历:广度优先搜索(BFS) 力扣题目链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal/ 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)…...
Practical User Research for Enterprise UX
2.1 Why It’s Hard to Get Support for Research in Enterprises 2.1.1 Time and Budget Instead of answering the question “What dowe gain if we do this research?”, ask instead “What do we stand to lose if we don’t do the research?” 2.1.2 Legacy Thinkin…...
文生视频:Sora模型报告总结
作为世界模拟器的视频生成模型 我们探索视频数据生成模型的大规模训练。具体来说,我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和图像潜在代码的时空补丁进行操作的变压器架构。我们最大的模型 Sora 能够生成一分钟…...
GA 374-2019 电子防盗锁检测
电子防盗锁是指以电子方式识别,处理相关信息并控制执行机构实施启闭且达到规定安全级别的锁具。 GA 374-2019 电子防盗锁检测项目 测试项目 测试标准 外观 GA 374 外壳防护等级 GA 374 功能 GA 374 编码组合数 GA 374 主锁舌伸出长度 GA 374 主锁舌灵活…...
代码随想录day26 Java版
今天开始刷贪心算法,新手保护期中爽得一批 455.分发饼干 先把两个数组排序,采用先满足胃口小的孩子,饼干数组无条件向后扫描,能满足孩子后再向后扫描胃口数组 class Solution {public int findContentChildren(int[] g, int[] …...
英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意
此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…...
数据集合
目录 并集 union union all 区别 交集 intersect 差集 minus 错误操作 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 常用的数学集合有:交集、并集、差集、补集 每一次查询实际上都会返回数据集合,…...
php基础学习之作用域和静态变量
作用域 变量(常量)能够被访问的区域,变量可以在常规代码中定义,也可以在函数内部定义 变量的作用域 在 PHP 中作用域严格来说分为两种,但是 PHP内部还定义一些在严格意义之外的一种,所以总共算三种—— 局部…...
SP1:基于Plonky3构建的zkVM
1. 引言 SP1为SuccictLab开源的,基于Plonky3构建的zkVM。 开源代码见: https://github.com/succinctlabs/sp1(Rust) 当前暂未实现onchain-verifier,但会采用标准的STARK->SNARK verifier。 SP1 zkVM基于的指令…...
Python爬虫之文件存储#5
爬虫专栏:http://t.csdnimg.cn/WfCSx 文件存储形式多种多样,比如可以保存成 TXT 纯文本形式,也可以保存为 JSON 格式、CSV 格式等,本节就来了解一下文本文件的存储方式。 TXT 文本存储 将数据保存到 TXT 文本的操作非常简单&am…...
Spring Boot 笔记 012 创建接口_添加文章分类
1.1.1 实体类添加校验 package com.geji.pojo;import jakarta.validation.constraints.NotEmpty; import lombok.Data;import java.time.LocalDateTime;Data public class Category {private Integer id;//主键IDNotEmptyprivate String categoryName;//分类名称NotEmptypriva…...
AI一键生成微信红包封面系统源码
内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 AI微信红包封面生成器源码是一款开源的微信红包封面生成工具,由前腾讯微信后台开发工程师「idoubi」开发并开源。项目名为“AI Cover”,旨在利用人工智能技术为用…...
VScode搭建一体化ROS开发环境:从配置到调试的完整实践指南
1. 项目概述与核心价值最近在带几个新同事上手机器人项目,发现他们配置ROS开发环境时,总会在各种依赖、路径和编译问题上卡壳,一折腾就是大半天。这让我想起自己刚接触ROS那会儿,也是被环境配置搞得焦头烂额,明明照着官…...
用HyperLynx VX2.5做LPDDR4X与高速串行总线仿真的完整工作流
HyperLynx VX2.5实战:LPDDR4X与高速串行总线仿真全流程解析 在当今高速电路设计领域,信号完整性问题已成为制约产品性能的关键瓶颈。尤其对于搭载LPDDR4X内存和高速串行总线的移动设备与服务器,工程师们常常陷入这样的困境:设计阶…...
NVDC充电架构深度解析:智能电源管理如何提升笔记本性能与电池寿命
1. 项目概述:NVDC充电器,一个被低估的“能量管家”如果你是一位经常需要带着笔记本电脑移动办公的资深用户,或者是一位对设备续航和充电效率有极致追求的硬件爱好者,那么“NVDC”这个词,很可能已经或即将进入你的视野。…...
基于ESP32与EzDIO的离线人脸识别门锁DIY全攻略
1. 项目概述:从智能门锁到人脸识别,一个DIY玩家的实践最近几年,智能家居的概念越来越火,从手机控制灯光到语音助手开关窗帘,似乎万物皆可“智能”。作为一个喜欢折腾硬件的玩家,我总觉得市面上的成品智能门…...
微积分入门书籍之日韩篇
微积分的奇幻旅程(2020.02) 超简单的微积分 函数、图、斜率、面积 ,一小时掌握微积分的本质(2024.03) 简单微积分 学校未教过的超简易入门技巧(2018.07) 数学女孩的秘密笔记:微分篇 数学女孩的秘密笔记:积分篇 超图解趣…...
GitHub项目改名后,本地仓库如何无缝衔接?保姆级操作指南(含常见错误排查)
GitHub项目改名后本地仓库无缝衔接全攻略:从原理到实战 当你兴冲冲地在GitHub上给项目改了个更酷的名字,回到命令行却看到一堆红色报错信息时,那种感觉就像搬家后发现自己忘带钥匙。本文将带你深入理解Git远程仓库的连接机制,并提…...
Windows安卓驱动安装终极解决方案:一键自动化ADB Fastboot工具
Windows安卓驱动安装终极解决方案:一键自动化ADB Fastboot工具 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirro…...
别再用默认筛选器了!用Tableau集和计算字段打造“老板最爱看”的交互仪表板
别再用默认筛选器了!用Tableau集和计算字段打造“老板最爱看”的交互仪表板 每次给管理层汇报数据时,最怕遇到什么场景?当你精心准备了20页分析报告,老板却直接翻到最后一页说:"我只关心A事业部和B事业部的表现&a…...
传递函数极零点分析:从RC滤波器到系统稳定性设计
1. 从电路到方程:理解传递函数的基石在电子工程,尤其是模拟电路和信号处理领域,我们常常需要精确描述一个系统如何“加工”输入信号。比如,一个简单的RC低通滤波器,它如何让低频信号顺利通过,同时抑制高频噪…...
