代码随想录day18 Java版

700.二叉搜索树中的搜索

前几天刚对比了下堆和二叉搜索树。堆是上下位置区分大小,二叉搜索树是左右位置区分大小

这道题简单应用了二叉搜索树的查找功能,直接用前序遍历

class Solution {public TreeNode searchBST(TreeNode root, int val) {if (root.val ==val) return root;if (root.val > val && root.left != null ) return searchBST(root.left, val);if (root.val < val && root.right != null) return searchBST(root.right,val);return null;}
}

98.验证二叉搜索树

中序遍历下,输出的二叉搜索树节点的数值是从小到大的有序序列。

class Solution {List<Integer> res = new ArrayList<>();public boolean isValidBST(TreeNode root) {in(root);for (int i = 1; i < res.size(); i++) if (res.get(i) <= res.get(i-1)) return false;return true;}void in(TreeNode node) {if (node.left != null) in(node.left);res.add(node.val);if (node.right!= null) in(node.right);}
}

530.二叉搜索树的最小绝对差

跟上一题一样,遇到在二叉搜索树上求数值问题的题目,可以利用中序遍历把二叉搜索树转化为有序数组,再进行分析。

class Solution {List<Integer> res = new ArrayList<>();public int getMinimumDifference(TreeNode root) {in(root);int ans = 100000;for (int i = 1; i < res.size(); i++) ans = Math.min(ans,res.get(i)-res.get(i-1));return ans;}void in(TreeNode node) {if (node.left != null) in(node.left);res.add(node.val);if (node.right!= null) in(node.right);}
}

501.二叉搜索树中的众数

将节点放到map中,找到最大出现次数并按照该值找到众数

res.stream().mapToInt(Integer::intValue).toArray();实现ArrayList转数组

class Solution {Map<Integer, Integer> count = new HashMap<>();List<Integer> res = new ArrayList<>();public int[] findMode(TreeNode root) {in(root);int p = 0;for (int i : count.values()) p = Math.max(p,i);for (int i : count.keySet()) {if (count.get(i) == p) res.add(i);}return res.stream().mapToInt(Integer::intValue).toArray();}void in(TreeNode node) {if (node.left != null) in(node.left);count.put(node.val,count.getOrDefault(node.val,0)+1);if (node.right!= null) in(node.right);}
}

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

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

相关文章

《山雨欲来-知道创宇 2023 年度 APT 威胁分析总结报告》

下载链接: https://pan.baidu.com/s/1eaIOyTk12d9mcuqDGzMYYQ?pwdzdcy 提取码: zdcy

Django模板(三)

一、标签URL 返回与给定视图和可选参数相匹配的绝对路径引用(不含域名的 URL) {% url some-url-name v1 v2 %} 第一个参数是url模式名称,后面跟着的是参数,以空格分隔可以使用关键字: {% url some-url-name arg1=v1 arg2=v2 %}如果您想检索命名空间的URL,请指定完全限定…

matlab去图像畸变

Input_path ‘C:\Users\Dell\Desktop\毕业设计\去畸变\Image\1’; Output_path‘C:\Users\Dell\Desktop\毕业设计\去畸变\Image\2’; namelist dir(strcat(Input_path,‘*.jpg’)); %获得文件夹下所有的 .jpg图片 len length(namelist); for i1:len namenamelist(i).name; …

Msql-数据库死锁

实验案例 CREATE TABLE t1_deadlock ( id int(11) NOT NULL, name varchar(100) DEFAULT NULL, age int(11) NOT NULL, address varchar(255) DEFAULT NULL, PRIMARY KEY (id), KEY idx_age (age) USING BTREE, KEY idx_name (name) USING BTREE ) ENGINEInnoDB DEFAULT CHARS…

linux安装Webmin

简介 Webmin是功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。Webmin支持绝大多数的Unix系统&#xff0c;这些系统除了各种版本的linux以外还包括&#xff1a;AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。 安装…

Apollo2.2.0 arm 达梦 人大金仓 适配

基本思路和我之前改的oracle的类似&#xff0c;这里就不赘述了。 Apollo oracle适配_apollo oracle脚本-CSDN博客 目前实现了kingbase8 pgsql兼容模式下适配。达梦 mysql兼容模式下的适配&#xff0c;兼容arm的国产处理器&#xff0c;直接上git链接&#xff0c;有问题私。不同…

百面嵌入式专栏(面试题)内存管理相关面试题1.0

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍内存管理相关面试题 。 一、内存管理相关面试题 page数据结构中的_refcount和_mapcount有什么区别?匿名页面和高速缓存页面有什么区别?page数据结构中有一个锁,我们称为页锁,请问trylock_page()和loc…

CAD-autolisp(四)——编译

目录 一、编译1.1 界面操作1.2 生成的应用程序&#xff08;二选一&#xff09; 二、后续学习 一、编译 编译&#xff1a;lsp后缀名为原文件&#xff0c;后缀名为fas、vlx为编译后文件&#xff0c;其会把sld、dcl、lsp等文件都编译进一个应用程序文件中加载&#xff1a;cad命令…

计算机二级C语言的注意事项及相应真题-2-程序修改

目录&#xff1a; 21.计算n!22.将单向链表结点(不包括头结点)数据域为偶数的值累加起来&#xff0c;并且作为函数值返回23.在字符串的最前端加入n个*号&#xff0c;形成新串&#xff0c;并且覆盖原串24.依次取出字符串中所有数字字符&#xff0c;形成新的字符串&#xff0c;并取…

删除.git的影响、git分支切换时注意事项

一、删除.git的影响 master分支文件 dev分支文件 删除.git后 文件为删除.git前分支的文件状态。 二、git分支切换时注意事项 情景&#xff1a;如果我在分支A&#xff0c;想要跳转到分支B。 git的规矩是&#xff0c;在那个分支上进行的提交&#xff0c;就算哪个分支上的工作…

白嫖10款游戏加速器,一年都不用开会员!

过年期间你们是走亲串戚还是窝家玩游戏、追剧&#xff1f;相信很多小伙伴都不会放过这个难得的假期&#xff0c;肯定是会百忙之中来两把的&#xff0c;那么人一多玩游戏肯定就会拥堵&#xff0c;有延迟。解决延迟最好的办法就是用加速器&#xff0c;当你的网络比别人强时&#…

【链表】-Lc83-删除有序链表中的重复元素(快慢双指针,slow,fast)

写在前面 最近想复习一下数据结构与算法相关的内容&#xff0c;找一些题来做一做。如有更好思路&#xff0c;欢迎指正。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.代码 写在后面 一、场景描述 删除有序链表中的重复元素。 示例&#xff1a; 输入&#xff1a;1->2…

避免Arrays.asList陷阱:优雅处理结构性修改的方法

临近年终&#xff0c;项目交付排期比较紧张&#xff0c;导致很多时候&#xff0c;Code Review 往往是走马观花&#xff0c;没有严格执行。最近&#xff0c;一个实习生就产生了一个十分低级的代码BUG。笔者感觉这个问题&#xff0c;对于实习生&#xff0c;尤其是刚入职的 应届 J…

幻兽帕鲁mod安装指南(自用mod)

以下mod仅steam单机安装验证有效&#xff01; 网址&#xff1a;https://www.nexusmods.com/palworld/mods/?BH2 游戏安装路径参考&#xff1a;D:\Steam\steamapps\common\Palworld\Pal\Binaries\Win64\Mods 一、功能性MOD 首先安装mod环境UE4SS xinput UE4SS xinput 安装步骤…

浅谈交换原理(3)——交换网络

一、基本概念 交换网络是由若干个交换单元按照一定的拓扑结构和控制方式构成的网络。交换网络的三个基本要素是&#xff1a;交换单元、不同交换单元间的拓扑连接和控制方式。 1.1 单机交换网络与多级交换网络 交换网络按拓扑连接方式可分为&#xff1a;单级交换网络和多级交换网…

版本控制器Git

目录 背景 图形化界面 下载安装或使用网页版 安装图形化界面 注册账号 创建仓库​ 创建本地仓库 ​创建项目到本地工作目录 三板斧 git add git commit git push 注意 命令行 Git和Gitee/Github的区别&#xff1f; 版本控制器是什么&#xff1f; 本地仓库VS…

综合回溯,剪枝,暴搜

目录 力扣1863.找出所有子集的异或总和再求和 力扣47.全排列II​编辑 力扣17.电话号码的字母组合电话号码的字母组合https://leetcode.cn/problems/letter-combinations-of-a-phone-number/​编辑 力扣22.括号生成 力扣1863.找出所有子集的异或总和再求和 class Solution {in…

第三百一十三回

文章目录 1. 概念介绍2. 实现方法2.1 obscureText属性2.2 decoration属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现倒计时功能"相关的内容&#xff0c;本章回中将介绍如何实现密码输入框.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍…

GEE入门篇|栅格数据集概述(四):其他卫星产品

目录 1.甲烷数据集 2.天气及气候数据 3.预先分类的土地用途和土地覆盖数据集 3.1ESA WorldCover 3.2 全球森林变化数据集 卫星还可以收集有关气候、天气和大气中存在的各种化合物的信息。这些卫星利用部分电磁频谱&#xff0c;以及不同物体和化合物在不同波长的阳光照射下…

嵌入式C语言学习——基于Linux与GCC

Linux终端创建文件指令&#xff1a; https://blog.csdn.net/xtho62/article/details/118194873 vim编辑器基本指令 1.过vim编辑器打开/创建文件&#xff1a;vim 文件名 2.进入文件&#xff0c;默认在正常模式&#xff0c;按 i 进入编辑模式 3.在编辑模式中&#xff0c;按ESC退出…