- 博客(23)
- 收藏
- 关注
原创 代码随想录算法训练营第二十六天(补,未完)| 回溯算法Part03 | 39. 组合总和、40.组合总和II、131.分割回文串
一个无重复元素的数组candidates,目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。
2024-02-01 00:21:16
154
原创 代码随想录算法训练营第二十五天(补)| 回溯算法Part02 | 216.组合总和III、17.电话号码的字母组合
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。for循环中的9-(k-len(path))+2是剪枝操作,k-len(path)表示path中还要添加的元素个数。示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]]
2024-01-28 23:33:14
170
原创 代码随想录算法训练营第二十三天(补)| 二叉树part09 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
【代码】代码随想录算法训练营第二十三天(补,未完)| 二叉树part09 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树。
2024-01-25 22:52:32
157
原创 代码随想录算法训练营第二十一天(补)| 二叉树part07 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
因为二叉搜索树是有序的,相当于一个有序数组,遍历成数组再求最小差值就可以了。
2024-01-22 00:17:31
383
原创 代码随想录算法训练营第二十二天(补)| 235. 二叉搜索树的最近公共祖先、 701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
从根节点向下遍历,第一次遇到cur节点在[p,q]之间,则cur节点就是p和q的最近公共祖先。删除节点比前一个题插入节点要难,因为要调整树的结构。要插入的节点放在叶子结点之下即可。
2024-01-17 23:42:42
431
原创 代码随想录算法训练营第二十天(第十九天休息)| 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
【代码】代码随想录算法训练营第十九天(未完)| 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索。
2024-01-15 23:28:02
340
原创 代码随想录算法训练营第十八天(补) | 513.找树左下角的值、112. 路径总和、113.路径总和ii、105.从前序与中序遍历序列构造二叉树、106.从中序与后序遍历序列构造二叉树
【代码】代码随想录算法训练营第十八天(补,未完) | 513.找树左下角的值、112. 路径总和、113.路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树。
2024-01-14 17:00:04
333
1
原创 代码随想录算法训练营第十六天 | 104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数
最小深度即根节点到叶子结点的最短路径。
2024-01-12 23:42:29
361
1
原创 代码随想录算法训练营第十七天 | 110.平衡二叉树、257. 二叉树的所有路径、 404.左叶子之和
求二叉树深度用前序遍历,求二叉树高度用后序遍历。
2024-01-11 23:25:22
357
1
原创 代码随想录算法训练营第十三天(第十二天休息) | 239. 滑动窗口最大值、347.前 K 个高频元素
今天的两题都比较困难,理解起来比较费劲,需多花时间反复研究,所以今天的打卡就借用代码随想录的答案。
2024-01-08 22:40:48
347
原创 代码随想录算法训练营第十一天(补) | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
逆波兰表达式类似于二叉树的后序遍历,用来表示运算式。题目要求判断左右括号是否对应,考察对栈的应用。和上题类似,考察对栈的应用。
2024-01-07 20:03:17
338
1
原创 代码随想录算法训练营第十天(补) | 225. 用队列实现栈 、232.用栈实现队列
pop:将队列第一个元素利用popleft移除再append添加到队尾,从而最后移除目标元素。用一个队列即可实现栈的push,pop,top和empty功能。用队列来模拟栈,并用两个栈来实现队列。top:返回目标元素但不移除。deque是双端队列。
2024-01-06 23:36:46
433
1
原创 代码随想录算法训练营第九天 | 28. 实现 strStr()
利用KMP算法,虽然下图的算法在Leetcode中超时了,但我觉得这个解法我目前最能理解,next存放的就是最长相同前后缀,没有减一加一或者整体右移。今天了解个大概,有空了再细研究。
2024-01-04 23:46:30
382
1
原创 代码随想录算法训练营第八天 | 344.反转字符串、541. 反转字符串II、151.翻转字符串里的单词
利用split将每个单词隔开,再直接翻转单词顺序,最后再连起来。没太理解这题,有空再看看。
2024-01-03 22:48:43
436
1
原创 代码随想录算法训练营第七天 | 454.四数相加 II、383. 赎金信、15. 三数之和、18. 四数之和
利用字典存入nums1和nums2的各元素之和及其出现次数,再计算nums3和nums4的各元素之和的相反数,检查是否与nums1和nums2中的元素和为相反数。字典的get函数可以替代判断变量是否在dict.key之内而后添加key或者增加value的语句。在上一题的基础上增加了一层嵌套,同样利用双指针,i在左,而后j,left移动,right在右。利用双指针,i在左,right在右,left在中间移动。
2024-01-02 23:29:15
318
原创 代码随想录算法训练营第六天(第五天周日休息)| 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
利用一个哈希表, s字符串中的字母出现一次哈希表对应位置+1, t字符串中的字母出现一次哈希表对应位置-1,如果最后哈希表全为0返回True。先存储一个数组中的所有元素进一个哈希表, 另一个数组中的元素再与该哈希表进行比较。sequence是要遍历的数据对象(列表, 元组, 字符串......)字典中的get()方法: dict(key, value)value: (可选)如果键不存在,则返回value的值。i是当前元素的索引, value是当前元素的值。key: (必选) 指定选择的键。
2024-01-01 20:30:51
323
原创 代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
注意是结点相同,不是只结点的值相同,且该解法中提前将长链表设定为B,省去了之后移动结点时判断谁长的问题。利用双指针,快慢指针先错开n个距离,最后一起移动到链表末尾,再删除慢结点的后一个结点。定义两个临时结点temp和temp1,temp用来两两交换,temp1用来向后移。思路:每走一步判断该结点是否在集合内,有则return,没有则添加。142.环形链表II。
2023-12-31 16:03:49
346
原创 代码随想录算法训练营第三天| 203.移除链表元素、707.设计链表、206.反转链表
一个节点由当前节点的值val和指向下一个节点的指针next组成。
2023-12-30 00:23:22
438
原创 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小的数组、59.螺旋矩阵II
个人感觉该题小有难度,边界判断很多,经常把自己绕进去,之后再研究一下。利用双指针求得题目所需长度最短的数组。利用双指针一左一右向中间移动。
2023-12-29 00:10:45
369
原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
right初始值为数组长度,while的判断条件left < right,当target小于中间值,right=middle。while的判断条件left
2023-12-27 22:40:15
442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人