- 博客(22)
- 收藏
- 关注
原创 代码随想录算法训练营第二十三天|LeetCode 39. 组合总和、40.组合总和II、131.分割回文串
进一步体会回溯的组合问题,剪枝优化和去重怎么做?这篇文章教会你!初步学习分割问题。
2025-03-30 22:28:03
679
原创 代码随想录算法训练营第二十二天|LeetCode 回溯算法理论基础、77. 组合、216.组合总和III、17.电话号码的字母组合
一篇文章搞懂回溯算法!回溯算法答题模板!组合问题经典例题!
2025-03-24 21:43:43
803
原创 代码随想录算法训练营第二十一天|LeetCode 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树、二叉树总结
二叉树题目选择什么遍历顺序?力扣二叉树大总结!二叉树需要的技能都在这里!!!
2025-03-19 20:24:08
749
原创 代码随想录算法训练营第十九天|LeetCode 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
二叉搜索树的一些操作;插入和删除二叉树的节点!
2025-03-17 22:08:27
693
原创 代码随想录算法训练营第十八天|LeetCode 530. 二叉搜索树的最小绝对差、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先
在二叉树上用双指针;继续学习递归函数返回值的情况;举例 逐步带你感受递归函数和隐式回溯过程
2025-03-17 14:36:24
681
原创 代码随想录算法训练营第十七天|LeetCode 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
构造二叉树题目的解法的优化;二叉搜索树
2025-03-12 21:50:42
606
原创 代码随想录算法训练营第十六天|LeetCode 513.找树左下角的值、112.路径总和、113. 路径总和||、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树
遍历二叉树,递归函数什么时候要有返回值,什么时候没有返回值,递归函数返回类型怎么确定?构造二叉树怎么做?一篇文章搞清这些问题!
2025-03-10 21:23:32
759
原创 代码随想录算法训练营第十五天|LeetCode 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数
这篇依然是所有题目优先掌握递归。
2025-03-05 14:03:48
723
原创 代码随想录算法训练营第十四天|LeetCode 226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度
如何选择遍历方式: 递归or 非递归 or 层序遍历?如果选择递归,递归中的 前or后or中序遍历?这篇文章为你解答!
2025-03-03 20:25:26
660
1
原创 代码随想录算法训练营第十二天|LeetCode 144.145.94 二叉树的前中后序遍历、102.107.199.637.429.515.116.117.104.111二叉树的层序遍历
二叉树的定义代码__init__函数和链表差不多,多了一个指针。
2025-02-28 20:14:29
595
原创 代码随想录算法训练营第十一天|LeetCode 150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素、总结
栈里面的元素在内存中是连续分布的么?
2025-02-26 16:44:41
986
原创 代码随想录算法训练营第十天|LeetCode 232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项
1. 栈 先进后出Python的标准库中没有专门的栈类,在Python中,可以使用列表(list)的append()和pop()方法来实现栈的功能。列表是一个动态数组,支持在末尾进行高效的追加和删除操作,因此非常适合用来实现栈。在Python中,列表(list)是可迭代的,因此你可以使用迭代器来遍历栈中的元素。需要注意的是,遍历栈时并不会改变栈的内容,栈的遍历顺序是从栈底到栈顶。由于用列表来模拟,那么栈顶元素即列表末尾,就是stack[-1],栈底元素是stack[0]
2025-02-21 21:05:03
354
原创 代码随想录算法训练营第九天|LeetCode 151.翻转字符串里的单词、卡码网55.右旋转字符串、28. 实现 strStr()、459.重复的子字符串、字符串总结 、双指针回顾
双指针法是字符串处理的常客.
2025-02-20 21:24:33
288
原创 代码随想录算法训练营第八天|LeetCode 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字
上一道题给的字符串是字符数组的形式,而这道题是字符串,在 Python 中,字符串是不可变(immutable)的,不能通过索引直接修改字符。在边界处理上不同,这里的这个答案的切片操作依赖于 Python 的切片功能,能够自动处理边界溢出情况。(从后向前填充元素,避免了从前向后填充元素时,每次添加元素都要将添加元素之后的所有元素向后移动的问题)超过了字符串的长度,Python 会自动调整到字符串的末尾,不用额外的判断。
2025-02-19 21:47:26
305
原创 代码随想录算法训练营第七天|LeetCode 454.四数相加||、383. 赎金信、15. 三数之和、18. 四数之和
状态:联想昨天的两数之和,不知道四个数的话怎么判断target-num,不会做这道题也要用map假设四个数组分别是ABCD前两个数组取出元素a+b 并统计出现的次数放到map里,遍历后两个数组c+d,查询0-(a+b)是否出现在map,出现的话即找到符合相加=0的四数元组。这样就解决了状态里我不会的那个点。至于为什么不是先遍历a,再遍历b+c+d,因为两个N^2的时间复杂度优于N+N^3。
2025-02-18 22:39:20
961
原创 代码随想录算法训练营第六天|LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
哈希表理论基础哈希表是根据关键码的值而直接进行访问的数据结构。枚举的时间复杂度是O(n),但如果使用哈希表, 只需要O(1)就可以做到。但是哈希法也是,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。当我们想使用哈希法来解决问题的时候,我们一般会选择如下。元素范围小的时候用数组,范围大的时候用set,用到key和value的时候即用map 也就是字典。
2025-02-17 22:05:49
841
原创 代码随想录算法训练营第四天|LeetCode 24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交、142.环形链表||
虚拟头节点一般涉及到 增删改操作,用虚拟头节点都会方便很多;如果只能查的话,用不用虚拟头结点都差不多。链表的基本操作反转链表删除倒数第N个节点链表相交环形链表。
2025-02-08 13:04:46
918
原创 代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null空指针。链表的入口节点称为链表的头节点head。:单链表、双链表、循环链表。链表在内存中不是连续分布的。链表是通过指针域的指针链接在内存中的各个节点。删除节点、添加节点;适用于数据量不固定,频繁增删较少查询的场景。
2025-01-25 21:46:46
265
原创 代码随想录算法训练营第二天|LeetCode 209.长度最小的子数组、LeetCode 59.螺旋矩阵||、区间和、开发商购买土地
滑动窗口也可以理解为双指针法的一种!只不过这种解法更像是一个窗口的移动。
2025-01-24 20:58:02
738
原创 image compression笔记
读论文A Unified End-to-End Framework for Efficient Deep Image Compression的笔记,自己观看,侵删。
2023-01-25 16:40:02
89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人