算法刷题记录
个人刷题记录
一抹阳光&
再努力再坚持
展开
-
3. 无重复字符的最长子串 | 字符串搜索 | Map | 哈希
【代码】3. 无重复字符的最长子串 | 字符串搜索 | Map | 哈希。原创 2023-02-19 11:36:38 · 89 阅读 · 0 评论 -
2. 两数相加 | 链表 | 链表长度 | 等价链表长度
总体上可以分为两类,迭代和递归。原创 2023-02-18 00:39:00 · 61 阅读 · 0 评论 -
25. K 个一组翻转链表 | 链表 | 递归 | 子问题分解
直接实现反转K个一组翻转链表可能非常困难,但是可以分成长度为K的子串,每一个字串分别反转并拼接,最后返回即可。这里采用的是判断 递归 + 是否为null为basecase 实现。分析可以发现,整体的过程就可以分解成长度为。的部分字串,所以明显可以使用递归来实现。反转链表很容易实现,可以通过。原创 2022-09-29 20:57:09 · 202 阅读 · 0 评论 -
92. 反转链表 II | 反转链表 | 反转链表的前N个 | 反转部分链表
如果需要用递归来做这一道题目,需要理解反转链表和反转链表的前N个元素这两个题目。原创 2022-09-19 20:04:59 · 223 阅读 · 0 评论 -
206. 反转链表 | 递归 | 定义递归
定义一个递归函数前,必须要分清楚每一个小过程所做的动作,在此基础上分析最底部也就是理解basecase需要做的动作。递归函数的难点在于如何理清楚程序执行。原创 2022-09-08 22:20:09 · 175 阅读 · 0 评论 -
104. 二叉树的最大深度 | 层序遍历 | 遍历 | 子问题 | TypeScript
利用递归,遍历二叉树,最深的深度应当是一个叶子节点的深度,也就是说没有左右孩子的节点的深度。二叉树几乎所有的问题都可以通过前中后来解决,所以需要较大程度上理解并掌握前中后序的遍历。思路非常的简单,使用队列存储每一层的节点,遍历节点,将节点存入队列,直至所有层被遍历完。遍历二叉树和使用分解二叉树不要搞混了,遍历时就遍历,不要搞拆分分解。这两类思路分别对应着 回溯算法核心框架 和 动态规划核心框架。使用分解子问题的形式统计二叉树的最深深度。二叉树题目的递归解法可以分两类思路。二叉树的数据结构和算法的关键。原创 2022-09-06 22:24:56 · 293 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组 | 双指针 | nSum问题 | 有序数组 | TypeScript
双指针技巧能解决nSum问题,(有序数组)原创 2022-09-05 07:36:43 · 113 阅读 · 0 评论 -
27. 移除元素 | 双指针 | TypeScript
思路简单,但是边界条件一不小心就会出错。原创 2022-09-05 00:14:00 · 143 阅读 · 0 评论 -
26. 删除有序数组中的重复项 | 快慢指针 | TypeScript
对于动态语言来说这是非常容易实现的一道题目,但是作为算法题不应该使用动态语言的优势,如直接生成对象等等。或者觉得上面难以理解的话,可以参考另外一个思路。原创 2022-09-04 00:23:32 · 350 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组 | Map解构 | TypeScript
思路还是比较简单的,target - numbers[i] = num,等式左边便是遍历,等式右边就是需要判断的数据。原创 2022-09-03 20:23:00 · 272 阅读 · 0 评论 -
160. 相交链表 | 循环交替 | 双指针
在交替的时候就有: 3 + 4 === 4 + 3,如果在这个过程中出现了相等节点就返回,如果没有出现相等,那么最终n1=以最简单的例子来说:一个链表包含相交的长度的为3,另外一个链表包含相交的长度为4。通过循环交替来判断是否相交,最多只需要交替两次就可以结束判断。=null,这是一个巧妙之处。原创 2022-09-03 00:39:02 · 157 阅读 · 0 评论 -
力扣打卡:142. 环形链表 II | 快慢指针 | 双指针
链表中与位置有关的计算都可以考虑使用快慢指针,左右指针,如倒数第N个节点,删除倒数第N个节点,中间节点等。原创 2022-09-02 23:03:14 · 203 阅读 · 0 评论 -
力扣打卡:19. 删除链表的倒数第 N 个结点 | 双指针
思路很简单:用两个指针来确定位置,与位置有关的链表大部分都是和双指针有关。倒数第k个节点,链表的中点,删除倒数第k个节点等等。原创 2022-09-02 00:07:26 · 130 阅读 · 0 评论 -
力扣打卡:23. 合并K个升序链表 | 链表 | 合并链表
注意:如果需要原有的数组,那么需要注意数组长度的使用应该是新长度;如果是构建新数组使用则无此问题。遍历数组链表元素,合并其中的两个,不再是单独合并一个。遍历链表数组,合并每一条链表。原创 2022-09-01 23:15:33 · 124 阅读 · 0 评论