代码随想录算法训练营记录
文章平均质量分 69
算法学习和记录打卡
hellogarbage
啥也不是
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
代码随想录算法训练营第二十九天|LeetCode134. 加油站、LeetCode135. 分发糖果、LeetCode860.柠檬水找零、LeetCode406.根据身高重建队列
本文整理了四道LeetCode贪心算法典型题目:1.加油站问题通过计算油量差值确定出发位置;2.分发糖果问题采用双向遍历确保评分高的孩子获得更多糖果;3.柠檬水找零问题模拟5/10/20美元找零过程;4.身高重建队列问题先按身高排序再根据人数指标插入。每道题均提供了题目链接、代码实现及解题思路,涵盖贪心算法在各类场景下的应用。原创 2025-06-25 22:27:55 · 265 阅读 · 0 评论 -
代码随想录算法训练营第二十八天|LeetCode122.买卖股票的最佳时机II、LeetCode55. 跳跃游戏、LeetCode45.跳跃游戏II、LeetCode1005.K次取反后最大化的数组和
本文分享了四个LeetCode贪心算法题的解法:1. 买卖股票II通过累加每日利润差值获取最大收益;2. 跳跃游戏I通过维护可达范围判断能否到达终点;3. 跳跃游戏II通过记录当前和下一步覆盖范围计算最小跳跃次数;4. K次取反数组和通过绝对值排序优先处理负数,最后处理剩余反转次数。每个题目都提供了力扣链接和具体代码实现,涵盖贪心算法的典型应用场景。原创 2025-06-25 22:21:52 · 258 阅读 · 0 评论 -
代码随想录算法训练营第二十七天|LeetCode455.分发饼干、LeetCode376. 摆动序列、LeetCode53. 最大子序和
这篇文章介绍了LeetCode上的三道贪心算法题目及其解法。455题"分发饼干"使用排序和双指针匹配孩子与饼干;376题"摆动序列"通过比较相邻差值统计最长摆动子序列;53题"最大子序和"采用动态规划思想求连续子数组最大和。每道题都提供了题目链接和完整的C++代码实现,代码简洁高效,体现了贪心算法的核心思想。这些题目适合算法学习者练习基础贪心策略的应用。原创 2025-06-25 22:15:54 · 233 阅读 · 0 评论 -
代码随想录算法训练营第二十五天|LeetCode491.递增子序列、LeetCode46.全排列、LeetCode47.全排列 II、LeetCode51.N皇后、LeetCode37.解数独
本文整理了LeetCode上五个经典回溯算法问题的题解,包括递增子序列、全排列、带重复元素的全排列、N皇后和解数独。每个题目都提供了力扣链接、代码随想录的文章讲解和视频讲解资源,并附上完整的C++代码实现。通过回溯算法框架,解决了寻找子序列、排列组合以及棋盘类问题,展示了如何通过递归和剪枝优化来有效解决这些常见算法问题。原创 2025-06-22 10:24:44 · 359 阅读 · 0 评论 -
代码随想录算法训练营第二十四天|LeetCode93.复原IP地址、LeetCode78.子集、LeetCode90.子集II
【摘要】本文分享了LeetCode中三个回溯算法的解法:93题复原IP地址采用分段验证和回溯剪枝,通过插入/删除点号来生成有效IP;78题子集通过递归遍历所有可能的组合,每次递归都保存当前路径;90题子集II在78题基础上增加了排序和去重逻辑,使用used数组避免重复子集。三题均采用典型回溯模板,展现了处理不同约束条件时的代码调整技巧。(150字)原创 2025-06-21 21:11:34 · 345 阅读 · 0 评论 -
代码随想录算法训练营第二十三天|LeetCode39. 组合总和、LeetCode40.组合总和II、LeetCode131.分割回文串
LeetCode39. 组合总和LeetCode40.组合总和IILeetCode131.分割回文串。原创 2025-06-21 21:05:53 · 333 阅读 · 0 评论 -
代码随想录算法训练营第二十二天|LeetCode77. 组合、LeetCode216.组合总和III、LeetCode17.电话号码的字母组合
的,前两题都是对同一个数组进行操作,同时也设置了startIndex来记录下一层数组的起始位置(其实也可以看成是一个新的数组,数组的第一个元素在startIndex的位置)。但是本题中每一层用到的数组需要根据层数(index)和不同的digit来回溯不同的数组(letterMap)。,那么再往后就会产生三种情况,分别是[1, 2], [1, 3], [1, 4]。,如下图,这棵树就是通过[1, 2, 3, 4]这个集合得到的,从1开始向后取数,取过的数不再重复取。假设第一次取出的是1,也就是图中的从。原创 2025-06-18 18:07:17 · 298 阅读 · 0 评论 -
代码随想录算法训练营第二十一天|LeetCode669. 修剪二叉搜索树、LeetCode108.将有序数组转换为二叉搜索树、LeetCode538.把二叉搜索树转换为累加树
LeetCode669. 修剪二叉搜索树文章链接:代码随想录视频链接:LeetCode:669. 修剪二叉搜索树_哔哩哔哩_bilibiliLeetCode108.将有序数组转换为二叉搜索树文章链接:代码随想录视频链接:LeetCode:108.将有序数组转换为二叉搜索树_哔哩哔哩_bilibiliLeetCode538.把二叉搜索树转换为累加树文章链接:代码随想录视频链接:LeetCode:538.把二叉搜索树转换为累加树_哔哩哔哩_bilibili。原创 2025-06-17 22:56:16 · 196 阅读 · 0 评论 -
代码随想录算法训练营第二十天|LeetCode235. 二叉搜索树的最近公共祖先、LeetCode701.二叉搜索树中的插入操作、LeetCode450.删除二叉搜索树中的节点
LeetCode235. 二叉搜索树的最近公共祖先文章讲解:代码随想录视频讲解:LeetCode235. 二叉搜索树的最近公共祖先_哔哩哔哩_bilibiliLeetCode701.二叉搜索树中的插入操作文章讲解:代码随想录视频讲解:LeetCode:701.二叉搜索树中的插入操作_哔哩哔哩_bilibiliLeetCode450.删除二叉搜索树中的节点文章讲解:代码随想录视频讲解:LeetCode:450.删除二叉搜索树中的节点_哔哩哔哩_bilibili。原创 2025-06-17 17:41:33 · 304 阅读 · 0 评论 -
代码随想录算法训练营第十八天|LeetCode530.二叉搜索树的最小绝对差、LeetCode501.二叉搜索树中的众数、LeetCode236. 二叉树的最近公共祖先
LeetCode530.二叉搜索树的最小绝对差文章讲解:代码随想录视频讲解:LeetCode:530.二叉搜索树的最小绝对差_哔哩哔哩_bilibiliLeetCode501.二叉搜索树中的众数文章讲解:代码随想录视频讲解:LeetCode:501.二叉搜索树中的众数_哔哩哔哩_bilibiliLeetCode236. 二叉树的最近公共祖先文章讲解:代码随想录视频讲解:LeetCode:236. 二叉树的最近公共祖先_哔哩哔哩_bilibili。原创 2025-06-14 23:06:22 · 259 阅读 · 0 评论 -
代码随想录算法训练营第十七天|LeetCode654.最大二叉树、LeetCode617.合并二叉树、LeetCode700.二叉搜索树中的搜索、LeetCode98.验证二叉搜索树
LeetCode654.最大二叉树文章讲解:LeetCode654.最大二叉树视频讲解:LeetCode:654.最大二叉树_哔哩哔哩_bilibiliLeetCode617.合并二叉树文章讲解:LeetCode617.合并二叉树视频讲解:LeetCode:617.合并二叉树_哔哩哔哩_bilibiliLeetCode700.二叉搜索树中的搜索文章讲解:LeetCode700.二叉搜索树中的搜索视频讲解:LeetCode:700.二叉搜索树中的搜索_哔哩哔哩_bilibili。原创 2025-06-13 22:30:16 · 359 阅读 · 0 评论 -
代码随想录算法训练营第十六天|LeetCode513. 找树左下角的值、LeetCode112 113. 路径总和 路径总和Ⅱ、LeetCode106. 从中序与后序遍历序列构造二叉树
LeetCode513. 找树左下角的值视频讲解:LeetCode:513.找二叉树左下角的值_哔哩哔哩_bilibili文章讲解:代码随想录LeetCode112 113. 路径总和 路径总和Ⅱ视频讲解:LeetCode:112. 路径总和_哔哩哔哩_bilibili文章讲解:代码随想录LeetCode106. 从中序与后序遍历序列构造二叉树视频讲解:LeetCode:106.从中序与后序遍历序列构造二叉树_哔哩哔哩_bilibili文章讲解:代码随想录。原创 2025-06-12 12:05:45 · 566 阅读 · 0 评论 -
代码随想录算法训练营第十五天|LeetCode110.平衡二叉树、LeetCode257. 二叉树的所有路径、LeetCode404.左叶子之和、LeetCode222.完全二叉树的节点个数
LeetCode110.平衡二叉树LeetCode257. 二叉树的所有路径LeetCode404.左叶子之和LeetCode222.完全二叉树的节点个数。原创 2025-06-11 23:16:13 · 323 阅读 · 0 评论 -
代码随想录算法训练营第十四天|LeetCode226.翻转二叉树、LeetCode101. 对称二叉树、LeetCode104.二叉树的最大深度、LeetCode111.二叉树的最小深度
LeetCode226.翻转二叉树LeetCode101. 对称二叉树LeetCode104.二叉树的最大深度LeetCode111.二叉树的最小深度。原创 2025-06-10 23:27:17 · 775 阅读 · 0 评论 -
代码随想录算法训练营第十一天|LeetCode150. 逆波兰表达式求值、LeetCode239. 滑动窗口最大值、LeetCode347.前 K 个高频元素
LeetCode150. 逆波兰表达式求值文章链接:代码随想录视频讲解LeetCode:150. 逆波兰表达式求值LeetCode239. 滑动窗口最大值文章链接:代码随想录视频讲解:LeetCode:239. 滑动窗口最大值LeetCode347.前 K 个高频元素文章链接:代码随想录视频讲解:LeetCode:347.前 K 个高频元素。原创 2025-06-07 20:22:05 · 322 阅读 · 0 评论 -
代码随想录算法训练营第十天|LeetCode232.用栈实现队列、LeetCode225.用队列实现栈、LeetCode20.有效的括号、LeetCode1047.删除字符串中的所有相邻重复项
LeetCode232.用栈实现队列文章链接:代码随想录视频讲解:LeetCode:232.用栈实现队列LeetCode225.用队列实现栈文章链接:代码随想录视频讲解:LeetCode:225. 用队列实现栈LeetCode20.有效的括号文章链接:代码随想录视频讲解:LeetCode:20. 有效的括号LeetCode1047.删除字符串中的所有相邻重复项文章链接:代码随想录视频讲解:LeetCode:1047. 删除字符串中的所有相邻重复项。原创 2025-06-06 17:57:14 · 487 阅读 · 0 评论 -
代码随想录算法训练营第九天|LeetCode151.翻转字符串中的单词、KamaCoder55. 右旋字符串、LeetCode28.找出字符串中第一个匹配项的下标、LeetCode459.重复的子串
LeetCode151.翻转字符串中的单词文章链接:代码随想录视频链接:LeetCode:151.翻转字符串里的单词KamaCoder55. 右旋字符串文章链接:代码随想录LeetCode28.找出字符串中第一个匹配项的下标文章链接:代码随想录算法视频链接:KMP算法(理论篇)算法视频链接:求next数组(代码篇)LeetCode459.重复的子字符串文章链接:代码随想录视频链接:LeetCode:459.重复的子字符串最长前后缀匹配字符串就是一个字符串s的头部一部分子串和尾部一部分子串完全相同且。原创 2025-06-06 13:58:34 · 1269 阅读 · 0 评论 -
代码随想录算法训练营第八天|LeetCode344.反转字符串、LeetCode541.反转字符串Ⅱ、KamaCoder54.替换数字
LeetCode344.反转字符串视频链接:LeetCode:344.反转字符串文章链接:代码随想录LeetCode541.反转字符串Ⅱ视频链接:LeetCode:541. 反转字符串II文章链接:代码随想录KamaCoder54.替换数字文章链接:代码随想录。原创 2025-06-04 17:24:49 · 337 阅读 · 0 评论 -
代码随想录算法训练营第七天|LeetCode454.四数相加II、LeetCode383.赎金信、LeetCode15.三数之和、LeetCode18.四数之和
LeetCode454.四数相加II文章讲解视频讲解LeetCode383.赎金信文章讲解LeetCode15.三数之和文章讲解视频讲解LeetCode18.四数之和文章讲解视频讲解。原创 2025-06-03 19:55:28 · 1225 阅读 · 0 评论 -
代码随想录算法训练营第六天|LeetCode242.有效的字母异位词、LeetCode349.两个数组的交集、LeetCode202.快乐数、LeetCode1.两数之和
统计完第一个单词的所有字母后,再统计第二个单词与第一个单词的所有字母的数量差值,如果所有字母的数量差值都为0,则两个单词的字母及数量完全一致,返回true,否则返回false。由于unordered_set底层实现是哈希表,所以查找和增删的效率都是O(1),我们可以不使用数组而改用unordered_set来记录出现过的数字,不过要注意的是相比与数组,使用unordered_set的效率会更低,因为无论是查找还是增删都会比数组额外多出一个哈希值的计算。原创 2025-06-02 12:57:24 · 559 阅读 · 0 评论 -
代码随想录算法训练营第四天|LeetCode24.两两交换链表中的结点、LeetCode19.删除链表的倒数第N个结点、LeetCode面试题02.07. 链表相交、LeetCode142.环形链表Ⅱ
设置快慢两个指针,如果要找倒数第n个结点,首先让快指针从newHead指针处先向后移动n个结点,然后slow和fast同时移动,直到fast的下一个结点为NULL时,此时slow的下一个结点就是我们要找的倒数第n个结点。如下图,假设链表有环,链表的直线部分长度为x,从环的入口处到fast和slow指针相交处长度为y,从相交处回到环的入口处的长度为z。,所以此时,我们只要再让一个新的指针从head出发,当前指针从相交点出发,不断往前移动一格,最终一定会再环的入口处相交!通过最后的关系式,我们可以得知,原创 2025-05-31 16:13:15 · 486 阅读 · 0 评论 -
代码随想录算法训练营第三天|LeetCode203.移除链表元素、LeetCode707.设计链表、LeetCode206.反转链表
无论是单双链表都需要设置一个新的结点类MyListNode,然后根据单双链表的结构不同,添加和删除有所不同,单链表的增删比较固定,只能添加或者删除某个结点后面的结点,所以确定添加或者删除位置的时候,我们要找到该位置的前一个结点,然后再进行添加或者删除。原地反转需要设置三个指针,如下图,pCur指向的结点是当前要进行反转的结点,pPre指向的结点是前一个反转的结点,temp是用来记录下一次pCur的位置。首先要考虑要删除结点的位置不同会导致相应的代码不同,假如我们要删除值为2的结点,要。原创 2025-05-30 18:43:28 · 353 阅读 · 0 评论 -
代码随想录算法训练营第二天|LeetCode209. 长度最小的子数组、LeetCode59.螺旋矩阵Ⅱ
LeetCode209. 长度最小的子数组、LeetCode59.螺旋矩阵Ⅱ原创 2025-05-29 10:46:57 · 289 阅读 · 0 评论 -
代码随想录算法训练营第一天|LeetCode704.二分查找、LeetCode27.移除元素、LeetCode977.有序数组的平方
LeetCode704.二分查找、LeetCode27.移除元素、LeetCode977.有序数组的平方原创 2025-05-28 11:56:36 · 435 阅读 · 0 评论
分享