2024.5.9 —— LeetCode 高频题复盘

目录

  • LCR 174. 寻找二叉搜索树中的目标节点
  • 518. 零钱兑换 II
  • LCR 159. 库存管理 III
  • 450. 删除二叉搜索树中的节点
  • 59. 螺旋矩阵 II
  • LCR 127. 跳跃训练
  • 16. 最接近的三数之和
  • LCR 143. 子结构判断
  • 75. 颜色分类
  • LCR 121. 寻找目标值 - 二维数组

LCR 174. 寻找二叉搜索树中的目标节点


题目链接

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def findTargetNode(self, root: Optional[TreeNode], cnt: int) -> int:def dfs(root):if not root:returndfs(root.right)self.cnt-=1if self.cnt==0:self.res=root.valreturndfs(root.left)self.cnt=cntdfs(root)return self.res

518. 零钱兑换 II


题目链接

class Solution:def change(self, amount: int, coins: List[int]) -> int:dp=[0]*(amount+1)dp[0]=1n=len(coins)for i in range(n):for j in range(coins[i],amount+1):dp[j]+=dp[j-coins[i]]return dp[amount]

LCR 159. 库存管理 III


题目链接

class Solution:def inventoryManagement(self, stock: List[int], cnt: int) -> List[int]:import heapqans=[]for num in stock:heapq.heappush(ans,-num)if len(ans)>cnt:heapq.heappop(ans)return [-num for num in ans]

同 面试题 17.14. 最小K个数

450. 删除二叉搜索树中的节点


题目链接

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:# 没找到要删除的结点if not root:return Noneif key>root.val:root.right=self.deleteNode(root.right,key)if key<root.val:root.left=self.deleteNode(root.left,key)if key==root.val:# 要删除的结点是叶子结点,左右结点为空if not root.left and not root.right:return None# 要删除的结点左结点为空,右结点不为空if not root.left and root.right:return root.right# 要删除的结点左结点不为空,右结点为空if root.left and not root.right:return  root.left# 要删除的结点左右结点均不为空if root.left and root.right:# 找到要删除结点的右孩子cur=root.rightwhile cur.left:cur=cur.leftcur.left=root.leftreturn root.rightreturn root        

参考题解

59. 螺旋矩阵 II


题目链接

class Solution:def generateMatrix(self, n: int) -> List[List[int]]:left,right,up,down=0,n-1,0,n-1matrix=[[0 for _ in range(n)] for _ in range(n)]start,end=1,n*nwhile start<=end:for i in range(left,right+1):matrix[up][i]=startstart+=1up+=1for i in range(up,down+1):matrix[i][right]=startstart+=1right-=1for i in range(right,left-1,-1):matrix[down][i]=startstart+=1down-=1for i in range(down,up-1,-1):matrix[i][left]=startstart+=1left+=1return matrix

区别于54. 螺旋矩阵

LCR 127. 跳跃训练


题目链接

class Solution:def trainWays(self, num: int) -> int:if num == 0:return 1if num==1 or num==2:return numdp=[0]*(num+1)dp[1]=1dp[2]=2for i in range(3,num+1):dp[i]=dp[i-1]+dp[i-2]return dp[num]%1000000007

注意本题与70. 爬楼梯有个小小的区别就是,n / num 的取值能不能为0。

16. 最接近的三数之和


题目链接

class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:nums.sort()res=nums[0]+nums[1]+nums[2]for i in range(len(nums)):start=i+1end=len(nums)-1while start<end:s=nums[i]+nums[start]+nums[end]if abs(s-target)<abs(res-target):res=sif s>target:end=end-1elif s<target:start+=1else:return sreturn res

LCR 143. 子结构判断


题目链接

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def isSubStructure(self, A: TreeNode, B: TreeNode) -> bool:# 以当前结点A为根结点的子树是否包含树Bdef recur(A,B):if not B:return Trueif not A or A.val !=B.val:return Falsereturn A.val ==B.val and recur(A.left,B.left) and recur(A.right,B.right)if not A or not B:return Falsereturn recur(A,B) or self.isSubStructure(A.left,B) or self.isSubStructure(A.right,B)

注意区别于 572. 另一棵树的子树,本题是判断子结构,只要包含这一部分就行,不管这一部分下面是否还有节点,而子树是包含该子树,该子树下面不能包含其他的节点,否则就不是包含该子树。
还有关联题目 100. 相同的树

75. 颜色分类


题目链接

class Solution:def sortColors(self, nums: List[int]) -> None:n=len(nums)ptr=0for i in range(n):if nums[i]==0:nums[i],nums[ptr]=nums[ptr],nums[i]ptr+=1for i in range(ptr,n):if nums[i]==1:nums[i],nums[ptr]=nums[ptr],nums[i]ptr+=1

LCR 121. 寻找目标值 - 二维数组


题目链接

class Solution:def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:# 0 <= n <= 1000# 0 <= m <= 1000if not matrix:return Falserows=len(matrix)cols=len(matrix[0])i=0j=cols-1while j>=0 and i<rows:if matrix[i][j]>target:j-=1elif matrix[i][j]<target:i+=1else:return Truereturn False

同 74. 搜索二维矩阵

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

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

相关文章

Java数组的应用---选择排序(Select Sort)

一、需求&#xff1a;选择排序(Select Sort)&#xff0c;进行升序显示 在一组排列中把最大的数取出来放在一个新的列表里&#xff0c;再删去&#xff0c;在取最大的数出来&#xff0c;依次类推直到取到最后一个数字 二、定义一个无序的一维数组&#xff0c;并输出数组 程序运…

RESTful API如何使用它构建 web 应用程序。

RESTful API&#xff08;Representational State Transfer API&#xff09;是一种设计和构建 web 应用程序的软件架构风格。它基于 HTTP 协议&#xff0c;并使用各种 HTTP 方法&#xff08;如 GET、POST、PUT、DELETE&#xff09;来处理数据传输。 RESTful API 的核心理念是将…

LabVIEW自动机械变速器(AMT)开发

LabVIEW自动机械变速器&#xff08;AMT&#xff09;开发 在现代汽车工业中&#xff0c;提升车辆的自动化水平和驾驶体验是一个不断追求的目标。随着技术的发展&#xff0c;自动机械变速器&#xff08;AutomatedMechanical Transmission, AMT&#xff09;凭借其较高的能效和较低…

面向对象 03:类与对象的创建、初始化和使用,通过 new 关键字调用构造方法,以及创建对象过程的内存分析

一、前言 记录时间 [2024-05-10] 系列文章简摘&#xff1a; Java 笔记 01&#xff1a;Java 概述&#xff0c;MarkDown 常用语法整理 Java 笔记 11&#xff1a;Java 方法相关内容&#xff0c;方法的设计原则&#xff0c;以及方法的定义和调用 面向对象 01&#xff1a;Java 面向对…

mysql的事务隔离级别和JDBC

# 隔离级别和面临的问题事务等级脏读不可重复读幻读read uncommitted√√√read committedX√√repeatable readXX√serializableXXX 事务的隔离级别越高&#xff0c;程序执行效率越低。 脏读: 在一个事务中读取到了另一个未提交事务的数据&#xff0c;即为脏读 不可重读读: …

element-plus el-time-picker 时间段选择(可多选)

实现一个如图的时间段选择器 处理好时间回显逻辑&#xff0c;组件内[‘’,‘’],后端数据[{startTime:‘’,endTime:‘’}]处理好加和减的显示逻辑 <template><div><div v-for"(item, index) in currentChoose" :key"index" class"fl…

Linux的内核态和用户态

一、Linux操作系统运行在两种不同的运行模式下&#xff1a;内核态&#xff08;Kernel Mode&#xff09;和用户态&#xff08;User Mode&#xff09; 内核态&#xff08;Kernel Mode&#xff09;&#xff1a; 内核态也称为特权模式或系统模式&#xff0c;是操作系统内核执行代码…

推荐算法顶会论文博客笔记合集

小小挖掘机学习笔记 https://mp.weixin.qq.com/s/rp2xXueEyT8IKvTr2Qss3A 推荐系统学习笔记 https://blog.csdn.net/wuzhongqiang/category_10128687.html SIGIR SIGIR 2022 | 推荐系统相关论文分类整理&#xff1a;8.74 https://mp.weixin.qq.com/s/vH0qJ-jGHL7s5wSn7Oy…

数据库管理-第184期 23ai:干掉MongoDB的不一定是另一个JSON数据库(20240507)

数据库管理184期 2024-05-07 数据库管理-第184期 23ai:干掉MongoDB的不一定是另一个JSON数据库&#xff08;20240507&#xff09;1 JSON需求2 关系型表设计3 JSON关系型二元性视图3 查询视图总结 数据库管理-第184期 23ai:干掉MongoDB的不一定是另一个JSON数据库&#xff08;20…

数据库表自增主键超过代码Integer长度问题

数据库自增主键是 int(10) unsigned类型的字段&#xff0c;int(M) 中 M指示最大显示宽度&#xff0c;不代表存储长度&#xff0c;实际int(1)也是可以存储21.47亿长度的数字&#xff0c;如果是无符号类型的&#xff0c;那么可以从0~42.94亿。 我们的表主键自增到21.47亿后&#…

信息系统项目管理基础

目录 一、项目管理概论 1、定义 2、项目管理的十二原则 3、SMART原则 4、项目经理 5、项目的生命周期 二、项目立项管理 1、项目启动过程 三、项目整合管理 1、管理基础 2、项目整合管理过程 ①制定项目章程 ②制定项目管理计划 ③指导与管理项目工作 ④管理项目…

Java_从入门到JavaEE_12+13

一、内部类 理解&#xff1a;一个类中再声明另外一个类分类&#xff1a; 成员内部类静态内部类接口内部类局部内部类匿名内部类 1.成员内部类 案例&#xff1a;创建成员内部类的对象&#xff0c;并调用方法 import com.lv.outter_inner_02.Outter.Inner; public class Test {p…

谷歌AlphaFold 3首发Nature,预测精准度提高100%,AI能帮助治疗癌症和免疫病 | 最新快讯

刚刚&#xff0c;顶级科学期刊英国《Nature》&#xff08;自然&#xff09;杂志发表了一份重磅、突破性研究论文。 北京时间 5 月 8 日 23 点&#xff0c;谷歌 DeepMind 和其英国子公司 Isomorphic Labs 联合团队在《自然》杂志上发表一份共 46 页的重要成果&#xff0c;联合发…

使用intro.js实现web页面的引导页

1、引入intro的js和对于的样式&#xff0c;如下&#xff1a; <!-- 引入 Intro.js 的 CSS 文件 --><link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/intro.js/4.0.0/introjs.min.css"><!-- 引入 Intro.js 的 JavaScrip…

YOLO系列笔记(十三)——数据集文件夹拆分

数据集文件夹拆分 前言代码说明导入模块设置文件夹路径创建目标文件夹读取和准备图片列表打乱图片顺序计算分配比例定义和使用移动文件函数最后打印分配结果 总结 前言 在学习和训练涉及YOLO等神经网络的过程中&#xff0c;我们通常需要对收集到的大型数据集进行合理的拆分&am…

计算图与自动微分

计算图与自动微分 一、自动梯度计算1.1 数值微分&#xff08;Numerical Differentiation&#xff09;1.2 符号微分&#xff08;Symbolic Differentiation&#xff09;1.3 自动微分&#xff08;Automatic Differentiation&#xff0c;AD&#xff09;1.3.1 计算图1.3.2 正向传播1…

Java Stream

1. Stream API概述 Java 8 Stream是Java 8中引入的一个新的API&#xff0c;用于处理集合和数组等数据结构的元素。它允许您在数据集上进行功能性操作&#xff0c;例如过滤、映射、排序等&#xff0c;而不需要编写循环或迭代器等底层代码。 Java 8 Stream与集合不同&#xff0c;…

超级好用的C++实用库之地理相关接口

&#x1f4a1; 需要该C实用库源码的大佬们&#xff0c;可扫码关注文章末尾的微信公众号二维码&#xff0c;或搜索微信公众号“希望睿智”。添加关注后&#xff0c;输入消息“超级好用的C实用库”&#xff0c;即可获得源码的下载链接。 概述 地理经纬度是地球表面坐标系统中的两…

动态表名 的使用方法

动态表名插件的底层是 拦截器 1&#xff0c;创建一个拦截器 Configuration public class MybatisConfiguration {Beanpublic DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor() {// 准备一个Map&#xff0c;用于存储TableNameHandlerMap<String, Table…

MySQL索引(聚簇索引、非聚簇索引)

了解MySQL索引详细&#xff0c;本文只做整理归纳&#xff1a;https://blog.csdn.net/wangfeijiu/article/details/113409719 概念 索引是对数据库表中一列或多列的值进行排序的一种结构&#xff0c;使用索引可快速访问数据库表中的特定信息。 索引分类 主键索引&#xff1a…