力扣二叉树--第三十五天
前言
二叉搜索树,写了一道题,第二题没写出来。明天再写吧。。。
内容
一、二叉搜索树中的搜索
700. 二叉搜索树中的搜索
给定二叉搜索树(BST)的根节点 root 和一个整数值 val。
你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。
递归
二叉搜索树,也称二叉排序树或二叉查找树
- 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
- 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
- 它的左、右子树也分别为二叉搜索树
时间复杂度:O(N),其中 N 是二叉搜索树的节点数。最坏情况下二叉搜索树是一条链,且要找的元素比链末尾的元素值还要小(大),这种情况下我们需要递归 N 次。
空间复杂度:O(N)。最坏情况下递归需要 O(N) 的栈空间。
func searchBST(root *TreeNode, val int) *TreeNode {if root==nil{return root}if root.Val==val{return root}if root.Val>val{// result:= searchBST(root.Left,val)// return resultreturn searchBST(root.Left,val)}//习惯直接写 searchBST(root.left, val),却忘了递归函数还有返回值
// result:=searchBST(root.Right,val)
// return resultreturn searchBST(root.Right,val)
}
迭代
节点的有序性就帮我们确定了搜索的方向
时间复杂度:O(N),其中 N 是二叉搜索树的节点数。最坏情况下二叉搜索树是一条链,且要找的元素比链末尾的元素值还要小(大),这种情况下我们需要递归 N 次。
空间复杂度:O(1)。没有使用额外的空间。
func searchBST(root *TreeNode,val int)*TreeNode{for root!=nil{if root.Val>val{root=root.Left}else if root.Val<val{root=root.Right}else{return root}}return nil
}
最后
怎么写了十天的递归迭代,遇到题还是写不出来。。。沉淀!
相关文章:
力扣二叉树--第三十五天
前言 二叉搜索树,写了一道题,第二题没写出来。明天再写吧。。。 内容 一、二叉搜索树中的搜索 700. 二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。…...
先喝点水,这期程序员兼职干货没有水分!
钱越来越难挣?程序员找兼职越来越难?结局只能指路美团? 还没看透职场“高薪”骗局?别人早就把精力放在了做副业上。兼职找不到,多半是经验不够、思路没打开,本篇文章,应该能让你茅塞顿开、收获颇丰。先喝…...
vue3通过el-dropdown实现动态菜单切换页面
这是效果图 首先是主页index.vue <template><el-row><el-col :span"20"><!-- 顶部菜单 --><div v-if"showTop"><topmenu /></div><!-- 右侧下方区域动态切换的内容 --><div style"flex: 1;&quo…...
go学习之文件操作与命令行参数
文章目录 一、文件操作1.基本介绍2.常用文件操作函数和方法3.关于文件操作应用实例4.写文件操作应用实例(创建文件并写入文件)1)基本介绍2)基本应用实例-方式一 5.判断文件是否存在6.统计英文、数字、空格和其他字符数量 二、命令…...
面试题:海量PDF的OCR处理思路
关键点: 1000wPDF:数据量非常大。3天处理完:有时间限制。一篇PDF1~10s:可能需要以最高10s去做计算,这样时间才能保证留有富余。要求资源最大化利用:也就是尽可能节省服务器资源,能复用尽量复用&…...
[原创][2]探究C#多线程开发细节-“线程的无顺序性“
[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delph…...
【精选】Spring整合MyBatis,Junit 及Spring 事务Spring AOP面向切面详解
Spring整合MyBatis 搭建环境 我们知道使用MyBatis时需要写大量创建SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession等对象的代码,而Spring的作用是帮助我们创建和管理对象,所以我们可以使用Spring整合MyBatis,简化MyBatis开发。 …...
获取Spring容器Bean工具类
获取Spring容器Bean工具类 1、创建SpringUtils工具类2、注册 SpringUtils工具类3、如果打包的是War方式,可能上面两个注册工具类的方法都没用 1、创建SpringUtils工具类 public class SpringUtils implements ApplicationContextAware {private static Application…...
图面试专题
一、概念 和二叉树的区别:图可能有环 常见概念 顶点(Vertex): 图中的节点或点。边(Edge): 顶点之间的连接线,描述节点之间的关系。有向图(Directed Graph)&…...
VUE的计算属性
<!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <title>计算属性</title> </head> <style> table { border: 1px solid #000; text-align: center; width: 240px; } th,td { border: 1px solid #000; …...
uniapp中使用pageScrollTo让页面滚动到固定节点或距离
uniapp中使用pageScrollTo让页面滚动到固定节点或距离 思路:计算当前节点距离顶部的距离滚动距离然后使用pageScrollTo进行滚动(要保证页面加载完成之后在执行) #topic" id :页面的节点 changeTop(id) {let query uni.c…...
使用机器学习方法进行分析和处理:对高质量图像进行压缩
使用SVD(奇异值分解)进行图像压缩与普通压缩工具压缩的主要区别在于压缩原理和压缩效果。 压缩原理: 普通图像压缩工具通常采用有损压缩或无损压缩算法,如JPEG、PNG等,它们主要针对图像的像素进行变换和编码。而SVD图像…...
多线程面试总结
1. 创建线程有哪几种方式 创建线程有三种方式,分别是继承Thread类、实现Runnable接口、实现Callable接口。 通过继承Thread类来创建并启动线程的步骤如下: 定义Thread类的子类,并重写该类的run()方法,该run()方法将作为线程执行…...
android11-隐藏状态栏和导航栏
隐藏导航栏 /android11/frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml diff --git a/frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml b/frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml index ba6b6956f1..6db2348…...
血的教训--kail系统免密centos7的坑【高版本ssh免密低版本ssh的坑】
血的教训–kail系统免密centos7的坑【高版本ssh免密低版本ssh的坑】 最近下载了一个2023版本的kail系统,但是经过几次设置免密后,ssh过去一直让提供密码,所以就仔细的分析了一下,果然还是发现了点猫腻 接上一个博客,大…...
javaagent字节码增强浅尝
概述 javaagent 技术广泛应用于对代码的增强,比如统计方法执行时间、GC 信息打印、分布式链路跟踪等;实现方式包括 javassist 和 bytebuddy,bytebuddy 是对 javassist 的改进;类似于 spring 中的 AOP; Instrumentati…...
计算机组成原理-Cache替换算法
文章目录 总览随机算法(RAND)先进先出算法(FIFO)近期最少使用算法(LRU)最不经常使用算法(LFU)总结 总览 随机算法(RAND) 没有选择性地考虑替换哪一块Cache&a…...
Adobe 家族系列download
adobe 前言 Adobe公司的产品线中拥有多个家族桶,下面是Adobe全家桶产品的功能介绍: Creative Cloud(创意云):包含Photoshop、Illustrator、InDesign、Premiere Pro、After Effects、Lightroom等创意设计、视频制作和…...
97.STL-查找算法 find
目录 STL-查找算法find 1.基本用法: 2.查找自定义类型: 3.查找范围: STL-查找算法find 在C的STL(标准模板库)中,find 算法用于在指定范围内查找指定值的元素。 功能描述: 查找指定元素&…...
如何应对雨天飞行的挑战?无人机机库防护能力解析
一、 背景介绍 无人机机库是无人机停放和起降场所,类似传统飞机的 hangar(飞机库)。它是一个专门用于存储、维护和保护无人机的设施。无人机机库的存在有助于提高无人机的安全性,同时也为无人机提供了一个有序的管理场所。 雨天…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...
内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...
