E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《算法刷题》
【LeetCode: 面试题 17.13. 恢复空格 | 暴力递归=>记忆化搜索=>动态规划】
算法题
算法刷题
专栏|面试必备算法|面试高频算法越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨作者简介:硕风和炜,CSDN-Java领域新星创作者,保研|国家奖学金|高中学习JAVA|大学完善
硕风和炜
·
2023-04-16 11:51
#
递归/回溯系列
#
动态规划系列
LeetCode每日一题打卡
leetcode
动态规划
算法
java
递归
Kiner
算法刷题
记(十一):哈希表与布隆过滤器(手撕算法篇)
系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记前言了解了哈希表的底层实现原理,知道了哈希函数的设计、哈希冲突的解决方案以及布隆过滤器的应用场景之后,再来一波算法题加深一下对哈希表的理解吧。705.设计哈希集合解题思路这道题我们其实就可以直接使用拉练法实现哈希表,因为这道题要求删除元素,而链表
星河阅卷
·
2023-04-15 05:48
前端基础
知识梳理
数据结构
算法
数据结构
哈希表
刷题
python3-
算法刷题
-字符串-更新中
43.字符串相乘https://leetcode.cn/problems/multiply-strings给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的BigInteger库或直接将输入转换为整数。示例1:输入:num1=“2”,num2=“3”输出:“6”示例2:输入:num1=“123”,num2=“4
陆沙
·
2023-04-14 22:16
算法学习与练习
算法
leetcode
python
Kiner
算法刷题
记(二十一):字典树与双数组字典树(手撕算法篇)
字典树与双数组字典树(手撕算法篇)系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记前言我们已经了解了字典树和双数组字典树的概念、结构特性、以及作用和应用场景,也一起实现了不同版本的字典树,那么,现在通过几道与字典树相关的题目巩固加深一下对于字典树的印象吧。刷题正餐208.实现Trie(前缀树)
星河阅卷
·
2023-04-14 05:37
数据结构
前端基础
知识梳理
算法
刷题
字典树
双数组字典树
算法刷题
(c/c++)---字典树
1.题源:leetcode每日一题2022.7.72.描述:在英语中,我们有一个叫做词根(root)的概念,可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为继承词(successor)。例如,词根an,跟随着单词other(其他),可以形成新的单词another(另一个)。现在,给定一个由许多词根组成的词典dictionary和一个用空格分隔单词形成的句子sentence。你需要将
7个七
·
2023-04-14 05:34
算法
c语言
c++
2022年度GitHub最火的力扣
算法刷题
宝典,手把手教你如何刷力扣~
前言昨晚逛了逛GitHub,无意中看到一位P8大佬的
算法刷题
笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看到。
麒麟改bug
·
2023-04-14 05:01
Java面试
Java核心技术
程序人生
java
开发语言
面试
算法
算法刷题
总结 (六) 前缀树 | 字典树 | 单词查找树
算法总结6前缀树|字典树|单词查找树一、理解字典树算法1.1、字面含义1.2、字典树的由来1.3、单词在字典树中如何存储1.4、字典树的结构二、经典问题208.实现Trie(前缀树)648.单词替换211.添加与搜索单词-数据结构设计(增加DFS)677.键值映射(节点属性,前缀数)676.实现一个魔法字典(DFS)820.单词的压缩编码其他相似题型一、理解字典树算法1.1、字面含义字典树分为字典
BlackStar_L
·
2023-04-14 04:00
Data
Structures
and
Algorithms
算法
决策树
Trie
字典树
前缀树
并查集
算法刷题
笔记【蓝桥杯】
理论理论练习[蓝桥杯2019省A]修改数组给定一个长度为NNN的数组A=[A1,A2,⋯AN]A=[A_1,A_2,\cdotsA_N]A=[A1,A2,⋯AN],数组中有可能有重复出现的整数。现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改A2,A3,⋯ ,ANA_2,A_3,\cdots,A_NA2,A3,⋯,AN。当修改AiA_iAi时,小明会检查AiA_iAi是否在A1A_
call me by ur name
·
2023-04-13 07:51
算法刷题笔记
蓝桥杯
算法
c++
区间dp
算法刷题
笔记【蓝桥杯】
理论区间dpdpdp是一种动态规划算法,用于解决区间问题。它的基本思想是将问题分解成若干子问题,然后通过递推求解整个问题。下面是一个经典的区间dpdpdp问题:给定一个长度为nnn的序列aaa,求aaa的一个子区间[l,r][l,r][l,r],使得区间和最大。我们可以定义一个状态f[i][j]f[i][j]f[i][j]表示区间[i,j][i,j][i,j]的最大和,然后通过状态转移方程来求解最
call me by ur name
·
2023-04-13 07:42
算法刷题笔记
算法
蓝桥杯
职场和发展
算法刷题
day1:设计链表,反转链表,两两交换链表中的节点,删除链表倒数第n个节点,判断链表是否相交 求交点 无返回NULL,判断链表是否有环
707:设计一个链表classMyLinkedList{public://定义链表节点结构体structLinkedNode{intval;LinkedNode*next;LinkedNode(intval):val(val),next(nullptr){}};//初始化链表MyLinkedList(){_dummyHead=newLinkedNode(0);//这里定义的头结点是一个虚拟头结点,
殷培文enen
·
2023-04-12 06:49
算法
链表
算法
数据结构
广度优先搜索
算法刷题
笔记【蓝桥杯】
理论BFS算法一般用于搜索最短路径问题,即在图结构中从一个顶点出发找到到另一个顶点的最短路径。BFS算法的设计步骤如下:定义一个队列,将起点加入队列。标记起点为已访问。从队列中取出一个顶点a,遍历其所有邻接顶点,选择未标记的顶点b,将b加入队列中。并标记b为已访问。重复执行第3步,直到找到目标顶点或者队列为空。如果队列为空,说明无法找到目标顶点。BFS算法可以用于许多问题,如图的连通性、迷宫问题、
call me by ur name
·
2023-04-11 16:09
算法刷题笔记
蓝桥杯
宽度优先
算法
代码随想录-68-669. 修剪二叉搜索树
目录前言题目1.按照二叉搜索树特性遍历整棵二叉搜索树,2.本题思路分析:3.算法实现4.算法坑点前言我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“
算法刷题
-代码随想录”该专栏下。
请叫我Oscar
·
2023-04-10 16:49
算法
数据结构
leetcode
代码随想录-67-450. 删除二叉搜索树中的节点
目录前言题目1.二叉搜索树特性递归找到要删除的节点2.本题思路分析:3.算法实现4.算法坑点前言我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“
算法刷题
-代码随想录”该专栏下。
请叫我Oscar
·
2023-04-10 16:48
算法
代码随想录-64-236. 二叉树的最近公共祖先
目录前言题目1.后序遍历回溯思想(从下到上找祖先节点)全局变量2.本题思路分析:3.算法实现4.算法坑点前言我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“
算法刷题
-代码随想录”该专栏下。
请叫我Oscar
·
2023-04-10 16:18
java
算法
开发语言
代码随想录-66-701.二叉搜索树中的插入操作
目录前言题目1.二叉搜索树特性递归找到要插入的位置(null的位置)2.本题思路分析:3.算法实现4.算法坑点前言我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“
算法刷题
-代码随想录”该专栏下。
请叫我Oscar
·
2023-04-10 16:01
数据结构
【
算法刷题
】堆-前 k 个高频单词
3.前k个高频单词692.前K个高频单词给定一个单词列表 words 和一个整数k,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字典顺序排序。示例1:输入:words=["i","love","leetcode","i","love","coding"],k=2输出:["i","love"]解析:"i"和"love"为出现次数最多的两
风老魔
·
2023-04-10 15:17
算法刷题
算法
数据结构
leetcode
【
算法刷题
】堆-数组中第 K 个最大元素
1.heapq堆Python中只有最小堆:importheapqa=[]heapq.heappush(a,3)#添加元素heapq.heappush(a,2)heapq.heappush(a,1)whilelen(a):#判断堆的长度print(heapq.heappop(a))#弹出堆顶元素#将列表转换为最小堆nums=[2,3,1,4,5,6]heapq.heapify(nums)whilel
风老魔
·
2023-04-10 15:16
算法刷题
算法
leetcode
数据结构
算法刷题
|跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:如果只有一级台阶,则只有一种跳法(1);如果有两级台阶,则有两种跳法:(1,1;2);如果有三级台阶,则有三种跳法:(1,1,1;1,2;2,1);如果有四级台阶,则有五种跳法:(1,1,1,1;1,1,2;1,2,1;2,1,1;2,2;)......依次类推可以发现如下规律:当n=1,f(
柚子槑
·
2023-04-09 17:52
算法刷题
-数组
JZ4二维数组中的查找**题目描述:**在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解决思路:正常:双循环,挨个查找;【但是这种线性查找方法效率极低】进阶:根据题面给出的条件(左到右递增,上到下递增),我们可以采取从右上角(或左下角)开始比较这样可以做
阿尔帕兹
·
2023-04-09 13:03
算法刷题
算法
leetcode
数据结构
算法刷题
之蓝桥杯2022年第十三届省赛真题-统计子矩阵 python解法
题目题目链接题目描述给定一个N×M的矩阵A,请你统计有多少个子矩阵(最小1×1,最大N×M)满足子矩阵中所有数的和不超过给定的整数K?输入格式第一行包含三个整数N,M和K.之后N行每行包含M个整数,代表矩阵A.输出格式一个整数代表答案。样例输入3410123456789101112样例输出19提示满足条件的子矩阵一共有19,包含:大小为1×1的有10个。大小为1×2的有3个。大小为1×3的有2个。
iridescent3055
·
2023-04-09 01:02
算法
蓝桥杯
算法
矩阵
python
算法刷题
之蓝桥杯2022年第十三届省赛真题-重新排序 python解法
先附上题目链接:https://www.dotcpp.com/oj/problem2690.html题目题目描述给定一个数组A和一些查询Li,Ri,求数组中第Li至第Ri个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?输入格式输入第一行包含一个整数n。第二行包含n个整数A1,A2,···,A
iridescent3055
·
2023-04-08 14:01
算法
蓝桥杯
算法
python
大学生计算机相关专业学生
算法刷题
平台、算法竞赛训练平台
OJ系统:作为
算法刷题
的平台,训练过程中,要有训练计划,坚持刷题,不断反思总结的过程。OJ:OnlineJudge系统的简称,用来在线检测程序源代码的正确性。
振哥在,世界充满爱!
·
2023-04-08 10:44
Java数据结构&算法
牛客网在线编程SQL篇非技术快速入门题解
如果你有编程基础,那么我推荐你到Leetcode这样的专业
算法刷题
网站,如果没有,也不要紧,你也可以到像牛客网一样的编程网站去练习。牛客网有很多面向非技术人员的练习题目,很适合入门。
RecordLiuV
·
2023-04-08 01:54
SQL入门
Mysql
sql
数据库
牛客网在线编程SQL篇非技术快速入门题解(二)
如果你有编程基础,那么我推荐你到Leetcode这样的专业
算法刷题
网站,如果没有,也不要紧,你也可以到像牛客网一样的编程网站去练习。牛客网有很多面向非技术人员的练习题目,很适合入门。
RecordLiuV
·
2023-04-08 01:54
SQL入门
Mysql
sql
数据库
金三银四面试字节大厂必备:600道
算法刷题
笔记!GitHub已疯传
不管是学生还是已经工作的人,我想彼此都有一个相同的梦想:进大厂!眼看着着金三银四已经来了,那么如何进入梦寐以求的大厂呢?首先你要清楚,现在无论是大厂还是小公司,面试考察的早已不仅仅是对技术语言的掌握程度了,对开发者算法能力的考查也越来越严格!甚至很多公司直接让手写代码,来考查数据结构与算法的扎实程度。在这一环节,数据结构与算法基础不扎实的人,必然会挂掉!而懂数据结构与算法的人,必然会更轻松的通关面
码农小芷
·
2023-04-07 08:25
二叉树-我的基础
算法刷题
之路(七)
本篇博客旨在整理记录自已对二叉树的一些总结,以及刷题的解题思路,同时希望可给小伙伴一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来,共勉。文章目录一、理论基础:1、常见术语2、基本操作3、种类:4、存储方式:5、遍历方式:深度优先搜索(DFS):广度优先搜索(BFS):二、二叉查找树的创建1、二叉树的结点类2、二叉树查找树3、二叉树查找树其他便捷方法3
安幻辞
·
2023-04-07 00:45
算法刷题
算法
数据结构
java
广度优先
深度优先
【
算法刷题
】—7.29完全背包问题,零钱兑换
✨目前正在学习:SSM框架,
算法刷题
本文收录专栏:
算法刷题
牛客网,刷算法过面试的神级网站,用牛客你也牛。免费注册和我一起学习刷题希望大家多多支持一起进步呀!
风铃听雨~
·
2023-04-04 00:41
算法刷题
算法
leetcode
职场和发展
java
面试
算法刷题
打卡038 | 动态规划6
完全背包问题相同的问题背景下,完全背包和01背包最大的区别是,01背包中的每个物品只有一个(只能使用一次),而完全背包的物品有无限个。之前学习01背包的一维滚动数组时就了解到,背包的遍历顺序影响到每个物品被用到的次数,只有倒序遍历才符合01背包的特性,而正序遍历刚好就是完全背包的情况,同一个物品可以取用无限次数。理解完全背包之后,代码实现就很简单了,基本就是01背包的代码调整一下遍历顺序。关键是如
tsy_
·
2023-04-03 23:09
刷题
算法
动态规划
算法刷题
打卡039 | 动态规划7
LeetCode70爬楼梯(进阶)题目链接:70.爬楼梯-力扣(Leetcode)爬楼梯原题是每次爬一阶或者两阶的楼梯,属于简单的斐波那契数列应用。当每次可以爬的阶数扩展到1到m(也就是每跨一步可以选择跨1个台阶、2个台阶、...、m个台阶),状态推导从只考虑前两个状态变为考虑前m个状态,用同样的动态规划也能做,通过m控制第二个for循环的遍历范围:classSolution{public:int
tsy_
·
2023-04-03 23:09
刷题
算法
动态规划
leetcode
算法刷题
打卡040 | 动态规划8
01背包和完全背包掌握之后,还有一个多重背包的问题。多重背包,我理解为介于01背包和完全背包之间,每个物品既不是只有1个,也不是有无限个可用,而是有固定数量,使得解题时要多考虑一个维度。因此一种解题方法是在01背包中再加一层物品数量的遍历,或者是将同一种物品的多个拆分,将问题转化为有相同物品的01背包。接下来就是一些背包问题应用和复习巩固。LeetCode139单词拆分题目链接:139.单词拆分-
tsy_
·
2023-04-03 23:09
刷题
算法
动态规划
数据结构
算法刷题
打卡037 | 动态规划5
LeetCode1049最后一块石头的重量II题目链接:1049.最后一块石头的重量II-力扣(Leetcode)看题目首先想到的是将所有石头放到一个有序集合里,不断取出两块重量接近的石头两相抵消,剩余部分放入集合中继续重复“相撞”的操作,主要就是模拟题目描述的过程:importqueueclassSolution:deflastStoneWeightII(self,stones:List[int
tsy_
·
2023-04-03 23:39
刷题
算法
动态规划
leetcode
算法刷题
打卡032 | 贪心算法6-终篇
贪心最后一天!LeetCode738单调递增的数字题目链接:738.单调递增的数字-力扣(Leetcode)这题很明显需要贪心地替换数字,从后往前遍历,遇到前一位数位比当前大的数位,就能将当前数位替换为9,并将前一个数位的数值减1,但自己实现时并没有想到,一旦替换了某一位为9,比它低的数位都应该替换为9,这样才能保证数尽可能大,还避免中间某一位替换为9之后又出现非递增的情况:classSoluti
tsy_
·
2023-04-03 23:38
刷题
算法
贪心算法
数据结构
算法刷题
打卡030 | 贪心算法4
LeetCode860.柠檬水找零题目链接:860.柠檬水找零-力扣(Leetcode)这道找零问题其实很简单,贪心在于收到20的钞票时优先用一张10和一张5找零,没有10的情况下才用3张5,因为5可以给10和20找零,而10只能用于给20找零,并且这个判断逻辑的前提是按bills的顺序进行。用比较简单的if-else模拟这个过程:classSolution:deflemonadeChange(s
tsy_
·
2023-04-03 23:38
刷题
贪心算法
算法
leetcode
算法刷题
打卡031 | 贪心算法5
今天的贪心算法题都跟区间相关,一般看到题目给出一些区间的列表,很自然会想到先排序便于判断和遍历。LeetCode435无重叠区间题目链接:435.无重叠区间-力扣(Leetcode)看到这题,很容易联想到前一天做的引爆气球的题目,同样对区间排序后做判断,对于重叠的区间只保留一个,和用一支箭引爆一堆重叠的气球异曲同工,只是要注意这里的区间端点相等也可以认为是不重叠的区间:classSolution:
tsy_
·
2023-04-03 23:38
刷题
贪心算法
算法
leetcode
算法刷题
打卡029 | 贪心算法3
LeetCode1005.K次取反后最大化的数组和题目链接:1005.K次取反后最大化的数组和-力扣(Leetcode)看到题目的第一反应以为数组范围都是非负数,于是可以根据k的奇偶性,k为偶数时只对同一个数反复取反,直接返回数组和,k为奇数时返回数组和与最小值的差值。但数据的数据范围包含负数,要最大化数组和,就需要优先将负数取反,负数取反完成后,如果k还有剩余的次数且为奇数,就将绝对值最小的数取
tsy_
·
2023-04-03 23:08
刷题
算法
贪心算法
leetcode
算法刷题
打卡027 | 贪心算法
贪心算是一种常识性的思路,没有固定规律套路可以总结,有时会和动态规划混淆,反正记住一点,就是能从子问题的局部最优推导出全局最优解。LeetCode455分发饼干题目链接:455.分发饼干-力扣(Leetcode)自己做题时想到用小尺寸的饼干优先满足小胃口的孩子,在代码实现时先遍历饼干,再遍历孩子,但写着写着思路有些混乱和不确定,一直想会不会有反例,干脆去看题解梳理一下。实际思路和遍历顺序没有问题,
tsy_
·
2023-04-03 23:07
刷题
算法
贪心算法
leetcode
算法刷题
打卡028 | 贪心算法2
感觉不少贪心算法的题目都能用动态规划求解。LeetCode122买卖股票的最佳时机II题目链接:122.买卖股票的最佳时机II-力扣(Leetcode)这道题买卖股票不限制次数,贪心贪的就是股票正的价格差,局部极小值入手,价格即将下跌之前的极大值出手:classSolution:defmaxProfit(self,prices:List[int])->int:n=len(prices)ifnpri
tsy_
·
2023-04-03 23:07
刷题
贪心算法
算法
leetcode
算法刷题
打卡023 | 回溯3
39组合总和以及40组合总和II已经在第21次打卡完成,看了讲解部分当作复习,不再赘述,今天的重点在于理解分割字符串的过程。LeetCode131分割回文串题目链接:131.分割回文串-力扣(Leetcode)分割型的回溯一直还不太能理解,主要问题是怎么表示切割线。“在处理组合问题的时候,递归参数需要传入startIndex,表示下一轮递归遍历的起始位置,这个startIndex就是切割线。”理解
tsy_
·
2023-04-03 23:37
刷题
leetcode
算法
算法刷题
打卡024 | 回溯4
LeetCode93复原IP地址题目链接:93.复原IP地址-力扣(Leetcode)这一题和分割回文串是一个思路,只需要将判断字符串是否回文的条件换成判断字符串代表的数字是否在合适范围。前导零的判断代码应该还可以更精简一些,一开始只判断了大于0的数字是否含有前导零,忽略了0本身也可能包含多个零,这种IP也不是有效的。另外还要注意收集结果时,满足条件的IP得是4个整数,因此还要判断当前path中是
tsy_
·
2023-04-03 23:37
刷题
算法
leetcode
算法刷题
打卡025 | 回溯5
LeetCode491递增子序列题目链接:491.递增子序列-力扣(Leetcode)乍一看和子集问题很像,但自己写还真不容易写出来,没有用used记录当前一层遍历已经使用过的元素时,结果集合会出现重复,也不能直接套用子集问题的去重方式。classSolution:def__init__(self):self.result=[]self.path=[]defbacktracking(self,nu
tsy_
·
2023-04-03 23:37
刷题
算法
leetcode
算法刷题
打卡026 |回溯6-终篇
首先跟随代码随想录进行了最近回溯刷题的总结,加深理解和记忆(我真的好像记性不是很好...)。回溯和递归相伴相生,在树的遍历中其实也经常涉及回溯,一开始我也很怵递归和回溯,不太习惯递归的思路,刷题下来已经形成了一些肌肉记忆,理解回溯的树形结构也很有帮助。记住,只能用回溯的题目,本质上也是在暴力枚举,只是一般的for循环没法实现,时间复杂度没有优化,最多能针对特定问题可以做一些剪枝。回溯解决的问题类型
tsy_
·
2023-04-03 23:37
刷题
算法
leetcode
算法刷题
打卡020 | 二叉树终篇
LeetCode669修剪二叉搜索树题目链接:669.修剪二叉搜索树-力扣(Leetcode)乍看这道题会觉得需要进行两次修剪,每次修剪一边。但讲解中在递归中直接完成两次判断,说实话还没完全理解这个递归逻辑,以下代码就是参考讲解写的:#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,righ
tsy_
·
2023-04-03 23:06
刷题
算法
leetcode
算法刷题
打卡021 | 回溯-组合问题
回溯理论基础第二次看回溯算法了,回溯的基本思路也已经基本掌握,接下来就是需要多做题,将回溯思想贯彻落实!具体理论参考代码随想录(programmercarl.com)。回溯的应用场景往往没有其他解题途径,只能枚举,但直接嵌套循环枚举只适用于循环层数较少的场景,通过在递归中使用for循环,可以实现在树中不断往深层遍历,而回溯是为了让程序能够走向其他路径,类比二叉树,通过纸笔模拟在树中节点的移动,可以
tsy_
·
2023-04-03 23:06
刷题
leetcode
算法
算法刷题
打卡022 | 回溯2
LeetCode216组合总和III题目链接:216.组合总和III-力扣(Leetcode)这道题和77组合解题思路完全相同,只是收集结果时多加了和为n的限制。具体代码实现时一度出现重复使用数字的情况,debug发现是for循环中调用递归函数时,每次遍历起始数字start传入了start+1,导致下一层遍历的起始位置有出入(可以获得已经遍历过的值),正确做法应该是传入当前i的下一个数字,限制下一
tsy_
·
2023-04-03 23:06
刷题
算法
leetcode
算法刷题
打卡019 | 二叉搜索树的插入删除
LeetCode235二叉搜索树的最近公共祖先题目链接:235.二叉搜索树的最近公共祖先-力扣(Leetcode)昨天做二叉树最近公共祖先时也一并用迭代法做完这道题,,递归法用任意一种遍历方式都可以,不再赘述。#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,x):#self.val=x#self.left=None#se
tsy_
·
2023-04-03 23:06
刷题
算法
leetcode
数据结构
算法刷题
打卡017 | 二叉树相关题目4道
LeetCode654最大二叉树题目链接:654.最大二叉树-力扣(Leetcode)这一题的思路和前一天的构建二叉树类似,只是将划分左右的规则由中序遍历结果改为区间的最大值,因为题目描述中明确nums中所有值不相同,因此可以用index找到每个区间最大值的下标:#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0
tsy_
·
2023-04-03 23:36
刷题
算法
leetcode
算法刷题
打卡009 | 栈应用题3道
今天复习利用栈与队列的特性解决问题。LeetCode20.有效的括号题目链接:20.有效的括号-力扣(Leetcode)有效的括号中,嵌套在最内层的右括号会与最近的左侧左括号匹配,根据栈后入先出的特性,可以把从左到右遍历到的左括号暂存到栈中,遇到右括号时检查栈顶是否与之匹配,栈为空或不匹配时整体括号无效,直接返回;括号匹配时将栈顶出栈,继续下一个括号的遍历。最后遍历结束,若栈不为空,存在多余的左括
tsy_
·
2023-04-03 23:35
刷题
算法
leetcode
算法刷题
打卡012 | 二叉树基础遍历
递归遍历复习递归函数三要素:递归函数的参数和返回值、终止条件以及单层递归的逻辑。前序遍历:144.二叉树的前序遍历-力扣(Leetcode)#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right
tsy_
·
2023-04-03 23:35
刷题
算法
数据结构
算法刷题
打卡002 | 有序数组的平方,长度最小子数组,螺旋矩阵II
977.有序数组的平方题目链接:977.有序数组的平方-力扣(Leetcode)前几天刚好又做了一遍这道题,主要思路是找到排序数组的分割点,将数组分为正、负两个部分(0或者第一个正数),然后从分割点开始向两边进行双指针遍历,较小的数优先放入结果数组。classSolution:defsortedSquares(self,nums:List[int])->List[int]:#原做法:找到排序数组分
tsy_
·
2023-04-03 23:05
刷题
算法
算法刷题
打卡005 | 哈希表相关题目4道
今天复习哈希表,Python中哈希表常用dict(各种defaultdict,OrderedDict等等),先看看哈希表基础内容。简单来说,哈希表又叫散列表,将键值对中的键映射到散列表中的一个位置,可以加快查找的速度。对应的映射函数称为哈希函数(散列函数),类似于数组中直接用index获取元素值,dict中代入key获得的哈希函数值就是index,可以O(1)的时间获取键所对应的值。经过哈希函数映
tsy_
·
2023-04-03 23:05
刷题
算法
散列表
leetcode
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他