- 博客(20)
- 收藏
- 关注
原创 回溯相关题目-组合问题
视频讲解:https://www.bilibili.com/video/BV1ti4y1L7cv剪枝操作:https://www.bilibili.com/video/BV1wi4y157er思路:首先就要把题目抽象的转换成树形结构,然后的思路就比较简单for循环进行横向遍历,递归进行纵向(向下)遍历。
2024-07-18 10:11:18
630
原创 二叉搜索树相关题目
题目链接/文章讲解:视频讲解: https://www.bilibili.com/video/BV17P41177ud本题虽然也涉及到删除节点,但是与450那题做法其实并不类似,因为450那题删除节点后我们就需要重构一下二叉树然后返回左右节点即可,但是本题我们并不是只删除一个节点,我们删除了一个节点后还是要继续判断剩余节点思路:例如:区间在[4,7],[low,high]
2024-07-17 14:27:14
865
原创 二叉搜索树的插入和删除操作
视频讲解:https://www.bilibili.com/video/BV1Zt4y1F7ww思路:怎么利用二叉搜索树的特性?如果确定二叉搜索树的公共祖先呢?为什么第一个遇到在[q,p]区间内的就一定是的公共祖先?(注意:[q,p]并没说谁大谁小,只是举例,做题还得判断)遍历顺序?
2024-07-17 14:24:05
737
原创 二叉树的最紧公共祖先
视频讲解:https://www.bilibili.com/video/BV1DD4y11779本题思路和98.验证二叉搜索树类似,利用二叉搜索树的中序遍历递增的特性。
2024-07-15 12:20:17
937
原创 代码随想录-中后续构建二叉树
递归法思路:首先使用递归就得先找到最深的一层,再开始找最左边的一层。那么就是只要我们遍历到叶子节点,就表示到了最后一个。同时我们要优先遍历左边的子树,因为左右子树深度相同的情况下,我们只记录最左边的值,又因为使用递归遍历所有的节点所以还需要回溯不断的向上返回到父节点。
2024-07-13 10:48:35
394
原创 二叉树相关题目练习-代码随想录
题目分析:平衡二叉树就是所有节点的左右子树高度差不超过1的二叉树那么既然是求高度那么就得知道高度从叶子节点开始是从下向上计算,而深度是根节点开始从上向下计算既然知道是从下向上来计算高度后,我们就可以想到二叉树的遍历顺序一定会是后序遍历因为只有处理了左右子树的高度后,我们才能知道当前节点的高度例如:图中的节点3,我只有知道节点3的左右孩子都是null后,我才能知道节点3的高度为1。
2024-07-09 20:20:18
731
原创 栈和队列-滑动窗口的最大值-逆波兰表达式求值
分析题目:tokens = [“2”,“1”,“+”,“3”,“*”],题目中的这个数组表示什么意思,简单来说就是遇到符号就把前两个数相加思路:那么本题使用栈就可以完成,首先遇到数字就加入栈,遇到符号就把前两个元素取出进行计算,并且把计算结果在重新加入栈中。
2024-07-05 09:09:54
203
原创 代码随想录day11(栈和队列)
首先大家知道栈是先进后出,队列是先进先出,那么一个栈肯定是无法实现队列的效果的思路就是使用两个栈,一个用来入队,一个用来出队。
2024-07-03 14:39:13
451
原创 翻转字符串里的单词
因为java字符串是不可变,所以代码编写时需要注意,同时思路上也会有一点小的改变,详细可以看代码注释。后面两步其实并不难实现,主要关键点在于第一步,怎么删除单子之间多余的空格。本题不建议使用库函数来完成,那样就失去了做这题的意义。首先同样可以使用双指针法来删除中间多余的空格。那么大致思路可以分为3步。
2024-07-02 20:40:13
182
原创 三数之和-四数之和
分析题目:从4个数组中各找一个元素相加等于0,相同元素可以重复使用思路:我们要查找元素并且求和,那么我们就要考虑到哈希法,哈希法在本题中要如何使用,首先我们应该遍历前两个集合,找出其中所有nums1[i]+nums2[j]存入map集合中,key为和,val为和出现的次数,然后再遍历后两个集合,同样相加,再去集合中查找另外一半是否在集合中。
2024-06-29 21:03:11
285
原创 代码随想录-哈希基础
题目链接/文章讲解/视频讲解:首先当我们需要查询一个元素是否出现过时,或者一个元素是否存在于集合中时就要联想到使用哈希法,这题就是一个比较简单的哈希表的一个应用思路:题目要我们判断字符串s和t中每个字符出现的次数是否相同,那么我们就可以把s中每个字符存入哈希表中,再与t做对比就可以,因为字母(题目有说明仅小写字母)最多只有26个,这题就可以直接使用数组进行存储。
2024-06-28 17:42:09
343
原创 两两交换链表节点-删除链表的倒数第n个节点
题目链接/文章讲解/视频讲解:思路:首先我们要交换两个节点的位置,我们就得知道节点1(如下图)的前一个节点,所以我们首先得先创建一个虚拟节点cur,然后开始交换节点的逻辑。
2024-06-26 09:14:54
379
原创 移除链表元素-设计链表
思路:首先想要删除链表中的元素,我们就得知道链表是怎么存储的,链表就是一个通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针)。如果我们想要删除其中的一个节点,我们就得知道待删除节点的前一个节点,让前一个节点指向待删除节点的下一个节点就可以完成删除。
2024-06-25 08:30:57
167
原创 第二天(长度最小子数组-螺旋矩阵2)
题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/视频讲解:https://www.bilibili.com/video/BV1tZ4y1q7XE思路:暴力破解:利用两个for循环,第一个for控制起始位置,第二个for控制结束位置,列出所有区间集合,找到满足条件的最小集合长度滑动窗口: 基本思想: 是一种在数组或字符串上操作的算法技巧,常用于解决一些连续子序列或子串的问题。
2024-06-22 21:16:25
370
原创 代码随想录算法训练营第一天
题目链接:https://leetcode.cn/problems/binary-search/视频讲解:https://www.bilibili.com/video/BV1fA4y1o715思路:这道题属于是二分查找的最基本的原理题,只需要进行单纯二分法就可以,当然在实现二分法的过程中也是有许多小细节需要注意以上的两种情况可能就是新手做二分法时会纠结的点(本人也是)下面就是示例代码带注释。
2024-06-21 15:32:45
282
1
原创 Es6常用函数
作用:根据指定条件筛选出数组中满足条件的元素,并返回一个新数组。方法会遍历数组中的每个元素,对每个元素都调用一次 函数。如果函数返回true,则当前元素会保留在新的数组中;如果callback函数返回false,则当前元素不会包含在新的数组中。
2023-08-30 15:59:32
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人