代码随想录算法刷题训练营day20

代码随想录算法刷题训练营day20:LeetCode(654)最大二叉树、LeetCode(617)合并二叉树、LeetCode(700)二叉搜索树中的搜索、LeetCode(700)二叉搜索树中的搜索、LeetCode(98)验证二叉搜索

LeetCode(654)最大二叉树
题目
在这里插入图片描述

代码

import java.util.Arrays;/*** 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;*     }* }*/
class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {//递归----判断终止条件if(nums.length==0){return null;}int data[]=getMaxIndexAndValue(nums);int dataIndex=data[0];int dataValue=data[1];TreeNode root=new TreeNode(dataValue);//拆分数组int[] leftNums=Arrays.copyOfRange(nums, 0, dataIndex);int[] rightNums=Arrays.copyOfRange(nums, dataIndex+1, nums.length);root.left=constructMaximumBinaryTree(leftNums);//左边构建左子树root.right=constructMaximumBinaryTree(rightNums);//右边构建右子树return root;}//定义一个函数用于获取数组中的最大值和对应的数组下标public int[] getMaxIndexAndValue(int[] nums){int[] result=new int[2];int index=0;int sum=0;for (int i = 0; i < nums.length; i++) {if(nums[i]>sum){sum=nums[i];index=i;}    }result[0]=index;result[1]=sum;//记住最大值的下标和对应的值return result;}
}

LeetCode(617)合并二叉树
题目
在这里插入图片描述

代码

/*** 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;*     }* }*/
class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {//先处理边角条件if(root1==null&&root2==null){return null;}if(root1==null&&root2!=null){return root2;}if(root1!=null&&root2==null){return root1;}TreeNode root=getMergeTrees(root1,root2);return root;}//单独构建一个函数用于处理public TreeNode getMergeTrees(TreeNode root1,TreeNode root2){//终止条件if(root1==null&&root2==null){return null;}/* if(root1==null){return root2;//树1为空即返回树2}if(root2==null){return root1;} */TreeNode root=new TreeNode();if(root1!=null&&root2==null){/* root.val=root1.val;return root; *///还会往下面走,所以空指针异常/* root.val=root1.val; */return root1;//树二已经没有了,需要把树1所有子树全部返回//}if(root1==null&&root2!=null){/* root.val=root2.val;return root; */return root2;}//先序遍历----同时遍历到同一位置if(root1!=null&&root2!=null){int data=root1.val+root2.val;root.val=data;}//左子树遍历root.left=getMergeTrees(root1.left, root2.left);//右子树遍历root.right=getMergeTrees(root1.right, root2.right);return root;}
}

LeetCode(700)二叉搜索树中的搜索
题目
在这里插入图片描述

代码

/*** 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;*     }* }*/
//二叉平衡树
class Solution {public TreeNode searchBST(TreeNode root, int val) {//递归----判断终止条件if(root==null){return null;}//前序遍历if(root.val==val){return root;}TreeNode result=new TreeNode();//左边//左子树//二叉搜索树//左边小于中间,右边大于中间if(val<root.val){//往左边走result=searchBST(root.left, val);}if(val>root.val){//右子树result=searchBST(root.right, val);}return result;}
}

LeetCode(98)验证二叉搜索
题目
在这里插入图片描述

代码

import java.util.ArrayList;
import java.util.List;/*** 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;*     }* }*/
class Solution {public boolean isValidBST(TreeNode root) {//定义一个集合,遍历树存储到集合里面//按中序遍历存储数据,若是二叉搜索树,则是一个升序数组List<Integer> dateTree=new ArrayList<>();getDateTree(root,dateTree);for (int i = 0; i < dateTree.size()-1; i++) {if(dateTree.get(i)>=dateTree.get(i+1)){return false;}   }return true;}public void getDateTree(TreeNode root,List<Integer> dateTree){if(root==null){return;}getDateTree(root.left, dateTree);//左子树dateTree.add(root.val);getDateTree(root.right, dateTree);//右子树}}

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

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

相关文章

vue3.0 + 动态加载组件 + 全局注册组件

首先 vue 动态加载组件使用的是 component 标签&#xff0c;并通过设置组件的is 属性来指定要渲染的组件。例如&#xff1a; <component :is"currentComponent"></component>其中&#xff0c;currentComponent 是一个变量&#xff0c;它的值可以是以下几…

第十二章 软件工程(上午题)

一、CMM( 能力成熟度模型 ) CMM 将软件过程改进分为以下五个级别 初始级&#xff1a;杂乱无章&#xff0c;没有明确定义的步骤 可重复级&#xff1a;建立了基本的项目管理过程和实践&#xff0c;有必要的过程准则来重复以前在同类项目中的成功 已定义级&#xff1a;软件过程文…

bash 5.2中文修订5

Grouping Commands 命令分组 Bash 提供两种方法将要执行的命令列表分组为一个单元。当命令被分组时&#xff0c;重定向可以应用于整个命令列表。例如&#xff0c;列表中所有命令的输出可以被重定向到单个流。 () 圆括号命令分组 ( list ) 将命令列表放在括号之间会强制 she…

搭建幻兽帕鲁需要什么样的服务器

作为一个开放世界生存制造类游戏《幻兽帕鲁》收获了空前绝后的热度&#xff0c;玩家们在游戏中通过在地图上捕捉收集到的“帕鲁”进行训练&#xff0c;合理利用他们的能力进行战斗&#xff0c;建立自己的家园、开辟新的世界、解锁新的冒险情节&#xff0c;获取更多游戏信息增加…

【数据结构 01】栈

一、原理 栈通常从数据结构和内存空间两个角度解释&#xff0c;从数据结构的角度&#xff0c;栈是一种线性结构表&#xff0c;只允许在固定的一端进行插入和删除元素&#xff0c;从内存空间角度&#xff0c;操作系统为函数和变量分配的内存空间通常在栈区&#xff0c;但是无论…

怎么查询鸿蒙真机支持的API版本

1、打开设备的开发者模式与USB调试并通过USB连接上电脑。 2、管理员身份运行cmd。 3、进入hdc.exe所在目录。(鸿蒙OS IDE的SDK下载目录中) 4、输入hdc shell&#xff0c;进入特殊模式 5、输入 getprop hw_sc.build.os.apiversion 查看API版本 6、输入 getprop hw_sc.build…

Codeforces Round 922 (Div. 2)(ABC)

C o d e f o r c e s R o u n d 922 ( D i v . 2 ) \Huge{Codeforces Round 922 (Div. 2)} CodeforcesRound922(Div.2) 文章目录 Problems A. Brick Wall思路标程 Problems B. Minimize Inversions思路标程 Problems C. XOR-distance思路标程 Problems A. Brick Wall 思路 给…

SQL切分字符串

MySQL 本身并没有提供内置的字符串切分函数&#xff0c;但你可以使用一些字符串函数和技巧来实现字符串切分。以下是一些常用的方法&#xff1a; 使用 SUBSTRING_INDEX 函数 SUBSTRING_INDEX 函数可以用来从字符串中提取子字符串。你可以使用它来获取字符串中的特定部分。 语…

第九节HarmonyOS 常用基础组件23-Menu、MenuItem、MenuItemGroup

1、描述 Menu&#xff1a;以垂直列表形式显示的菜单。 MenuItem&#xff1a;用来展示菜单Menu中具体的item菜单项。 MenuItemGroup&#xff1a;该组件用来展示菜单MenuItem的分组。 2、子组件 Menu&#xff1a;包含MenuItem、MenuItemGroup子组件。 MenuItem&#xff1a;…

SQL Server 函数参考手册(SQL Server 数值函数)

目录 SQL Server ABS() 函数 SQL Server ACOS() 函数 SQL Server ASIN() 函数 SQL Server ATAN() 函数 SQL Server ATN2() 函数 SQL Server AVG() 函数 SQL Server CEILING() 函数 SQL Server COUNT() 函数 SQL Server COS() 函数 SQL Server COT() 函数 SQL Server…

安全测试-pikachu靶场搭建

pikachu靶场搭建 文章目录 pikachu安装步骤 pikachu pikachu是一个自带web漏洞的应用系统&#xff0c;在这里包含了常见的web安全漏洞&#xff0c;也就是练习的靶场。 练习内容包括&#xff1a; 1.暴力破解 2.XSS 3.CSRF 4.SQL注入 5.RCE 6.文件包含 7.不安全的文件下载 8.不安…

【C++】类和对象(二)——构造/析构/拷贝构造函数

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读1. 默认成员函数2. 构造函数2.1 引入2.2 特性2.3 默认构造函数 3. 析构函数3.1 概念3.2 特性3.3 默认析构函数 4. 拷贝构造函…

2024 高级前端面试题之 Vue 「精选篇」

该内容主要整理关于 Vue 模块的相关面试题&#xff0c;其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 Vue模块精选篇 1. 谈谈你对MVVM的理解2. 谈谈你对SPA单页面的理解3. Vue2.x 响应式数据原理4. Vue3.x 响应式数据原理5. Vue中如何检测数组变化6. Vue中如何进…

大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置

上一篇&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 目录 1. &#x1f959;Idea中配置Live Templates来快速生成代码片段 2. &#x1f959;Idea中配置文件模板自定义初始代码 3.&#x1f959;设置spark-submit提交程…

[NAND Flash 7.1] 闪存系统性能优化方向集锦?AC timing? Cache? 多路并发?

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< ​ 传送门 >>> 总目录 主页: 元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言。 个人辛苦整理,付费内容,禁止转载。 内容摘要 优…

【排序算法】C语言实现随机快排,巨详细讲解

文章目录 &#x1f680;前言&#x1f680;快排的核心过程partition&#xff08;划分过程&#xff09;&#x1f680;快排1.0&#x1f680;随机快速排序&#x1f680;稳定性 &#x1f680;前言 铁子们好啊&#xff01;继续我们排序算法今天要讲的是快排&#xff0c;通常大家所说…

HBase表结构

HBase是非关系型数据库&#xff0c;是高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库。 HBase使用场景 大规模数据存储&#xff1a;如日志记录、数据库备份等。实时数据访问&#xff1a;如实时搜索、实时分析等。高性能读写&#xff1a;如高并发、低延迟的读写操…

【Java之HTML】

HTML 概念 互联网的产生&#xff1a;w3c的成立&#xff0c; ​ 互联网最开始设计的目的&#xff1a;看论文 ---->浏览器&#xff0c;HTML ​ 网络三要素&#xff1a;HTML HTTP URL HTML描述论文的格式 HTTP标记这个论文在网络上怎么传输 URL:指示这个论文在互联网的哪…

【SHUD】Windows下安装rSHUD

目录 说明一、安装R二、安装rSHUD自动安装依赖手动安装依赖安装rShud说明 rSHUD官网 rSHUD功能: 空间数据分析和操作。处理矢量和栅格数据,建立非结构三角网络。读/写SHUD模型的输入文件读取SHUD模型输出文件自动化模型调参水文数据时间序列分析二维三维数据可视化GIS空间数…

oj赛(双周赛第二十次)

目录 碰碰车 小码哥与机器人 小码哥的跳棋游戏 竖直打印机 排队 邮箱地址 碰碰车 难度:钻石 占用内存:128 M时间限制:1秒 游乐园玩碰碰车&#xff0c;其中有一种碰碰车是在一条直线上行驶。该碰碰车有一个初始朝向和初始位置&#xff0c;并且以每秒一个单位的速度向初始方…