- 博客(44)
- 收藏
- 关注
原创 leetcode刷题(第四十九天)121. 买卖股票的最佳时机 ; 122.买卖股票的最佳时机II
第九章 动态规划part10121. 买卖股票的最佳时机;122.买卖股票的最佳时机II卡哥建议:股票问题是一个动态规划的系列问题,今日安排的题目不多,大家可以慢慢消化。补充:121. 买卖股票的最佳时机122.买卖股票的最佳时机II。
2023-09-25 19:11:44
135
原创 leetcode刷题(第三十天) 332.重新安排行程 ; 51. N皇后 ; 37. 解数独 ; 总结
第七章 回溯算法part06332.重新安排行程;51. N皇后;37. 解数独;总结卡哥建议:今天这三道题都非常难,那么这么难的题,为啥一天做三道?因为 一刷 也不求大家能把这么难的问题解决,所以 大家一刷的时候,就了解一下题目的要求,了解一下解题思路,不求能直接写出代码,先大概熟悉一下这些题,二刷的时候,随着对回溯算法的深入理解,再去解决如下三题。大家今天的任务,其实是 对回溯算法章节做一个总结就行。补充:332.重新安排行程51. N皇后。
2023-09-25 10:54:09
130
原创 leetcode刷题(第二十九天)491.递增子序列;46.全排列; 47.全排列 II
第七章 回溯算法part05:491.递增子序列;46.全排列;47.全排列 II。
2023-09-25 10:49:39
121
原创 leetcode刷题(第二十八天) 93.复原IP地址 ; 78.子集 ; 90.子集II
28 第七章 回溯算法93.复原IP地址;78.子集;90.子集II补充:93.复原IP地址本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了78.子集子集问题,就是收集树形结构中,每一个节点的结果。整体代码其实和 回溯模板都是差不多的。
2023-09-25 10:45:44
106
原创 leetcode刷题(第三天) 链表理论基础 ; 203.移除链表元素 ; 707.设计链表 ; 206.反转链表
第二章 链表part01链表理论基础;203.移除链表元素;707.设计链表;206.反转链表。补充:链表理论基础了解一下链接基础,以及链表和数组的区别203.移除链表元素本题最关键是要理解 虚拟头结点的使用技巧,这个对链表题目很重要。
2023-09-25 10:37:06
37
原创 leetcode刷题(第四十八天) 198.打家劫舍 ; 213.打家劫舍II ; 337.打家劫舍III
第九章 动态规划part09198.打家劫舍;213.打家劫舍II;337.打家劫舍III卡哥建议:今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。补充:198.打家劫舍213.打家劫舍II。
2023-09-25 10:27:03
46
原创 leetcode刷题(第四十六天) 139.单词拆分 ; 关于多重背包,你该了解这些! ; 背包问题总结篇!
第九章 动态规划part08139.单词拆分;关于多重背包,你该了解这些!;背包问题总结篇!卡哥建议:关于 多重背包,力扣上没有相关的题目,所以今天大家的重点就是回顾一波 自己做的背包题目吧。补充:139.单词拆分关于多重背包,你该了解这些!
2023-09-25 10:23:54
77
原创 leetcode刷题(第四十五天)70. 爬楼梯 (进阶); 322. 零钱兑换 ; 279.完全平方数
第九章 动态规划part0770. 爬楼梯 (进阶);322. 零钱兑换;279.完全平方数补充:70. 爬楼梯 (进阶)这道题目 爬楼梯之前我们做过,这次再用完全背包的思路来分析一遍322. 零钱兑换如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。
2023-09-25 10:21:07
255
原创 leetcode刷题(第四十四天) 完全背包; 518. 零钱兑换 II ; 377. 组合总和 Ⅳ
第九章 动态规划part06完全背包;518. 零钱兑换 II;377. 组合总和 Ⅳ卡哥建议:力扣上没有纯粹的完全背包的题目,所以大家看本篇了解一下 完全背包的理论;后面的两道题目,都是完全背包的应用,做做感受一下补充:完全背包518. 零钱兑换 II。
2023-09-25 10:14:23
90
原创 leetcode刷题(第四十三天) 1049. 最后一块石头的重量 II ; 494. 目标和 ; 474.一和零
第九章 动态规划part051049. 最后一块石头的重量 II;494. 目标和;474.一和零补充:1049. 最后一块石头的重量 II本题就和 昨天的 416. 分割等和子集 很像了,可以尝试先自己思考做一做。494. 目标和大家重点理解 递推公式:dp[j] += dp[j - nums[i]],这个公式后面的提问 我们还会用到。
2023-09-25 10:10:38
51
原创 leetcode刷题(第四十二天) 01背包问题,你该了解这些! ; 01背包问题,你该了解这些! 滚动数组 ; 416. 分割等和子集
第九章 动态规划part0401背包问题,你该了解这些!;01背包问题,你该了解这些!滚动数组;416. 分割等和子集卡哥建议:正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,但基本理解的都不够深入。如果是直接从来没听过背包问题,可以先看文字讲解慢慢了解 这是干什么的。如果做过背包类问题,可以先看视频,很多内容,是自己平时没有考虑到位的。背包问题,力扣上没有原题,大家先了解理论,今天就安排一道具体题目。补充:01背包问题 二维01背包问题 一维。
2023-09-25 10:07:15
37
原创 leetcode刷题(第四十一天) 343. 整数拆分 ; 96.不同的二叉搜索树
卡哥建议:代码随想录:补充::::今日收获,记录一下自己的学习时长:
2023-09-17 11:47:20
36
原创 leetcode刷题(第三十九天)62.不同路径 ; 63. 不同路径 II
第九章 动态规划part0262.不同路径;63. 不同路径 II卡哥建议:今天开始逐渐有 dp的感觉了,题目不多,就两个 不同路径,可以好好研究一下补充:62.不同路径本题大家掌握动态规划的方法就可以。数论方法 有点非主流,很难想到。63. 不同路径 II。
2023-09-17 11:21:49
40
原创 leetcode刷题(第三十八天) 理论基础 ;509. 斐波那契数 ; 70. 爬楼梯 ; 746. 使用最小花费爬楼梯
第九章 动态规划part01理论基础;509. 斐波那契数;70. 爬楼梯;746. 使用最小花费爬楼梯补充:理论基础无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了?其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!如果做过动态规划题目的录友,看我的理论基础 就会感同身受了。509. 斐波那契数很简单的动规入门题,但简单题使用来掌握方法论的,还是要有动规五部曲来分析。
2023-09-17 11:17:58
39
原创 leetcode刷题(第三十七天)738.单调递增的数字 ; 968.监控二叉树 ; 总结
第八章 贪心算法 part06738.单调递增的数字;968.监控二叉树;总结补充:738.单调递增的数字968.监控二叉树。
2023-09-17 11:04:32
259
原创 leetcode刷题(第三十六天)435. 无重叠区间 ;763.划分字母区间 ; 56. 合并区间
第八章 贪心算法 part05435. 无重叠区间;763.划分字母区间;56. 合并区间卡哥建议:今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!还是属于那种,做过了也就会了,没做过就很难想出来。不过大家把如下三题做了之后, 重叠区间 基本上差不多了补充:435. 无重叠区间763.划分字母区间。
2023-09-13 19:31:33
402
原创 leetcode刷题(第三十五天)860.柠檬水找零 ;406.根据身高重建队列 ; 452. 用最少数量的箭引爆气球
第八章 贪心算法 part04860.柠檬水找零;406.根据身高重建队列;452. 用最少数量的箭引爆气球补充:860.柠檬水找零本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。406.根据身高重建队列本题有点难度,和分发糖果类似,不要两头兼顾,处理好一边再处理另一边。
2023-09-13 19:28:57
412
原创 leetcode刷题(第三十一天) 理论基础 ; 455.分发饼干 ;376. 摆动序列 ; 53. 最大子序和
第八章 贪心算法 part01理论基础;455.分发饼干;376. 摆动序列;53. 最大子序和卡哥建议:贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。不用花心思去研究其规律, 没有思路就立刻看题解。基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。补充:理论基础难点就是如何通过局部最优,推出整体最优;455.分发饼干。
2023-09-11 16:51:37
465
原创 leetcode刷题(第三十四天)1005.K次取反后最大化的数组和 ; 134. 加油站;135. 分发糖果
第八章 贪心算法 part031005.K次取反后最大化的数组和;134. 加油站;135. 分发糖果补充:1005.K次取反后最大化的数组和本题简单一些,估计大家不用想着贪心 ,用自己直觉也会有思路。134. 加油站本题有点难度,不太好想,推荐大家熟悉一下方法二。
2023-09-11 16:51:29
380
原创 leetcode刷题(第三十二天) 122.买卖股票的最佳时机II ; 55. 跳跃游戏 ; 45.跳跃游戏II
第八章 贪心算法 part02122.买卖股票的最佳时机II;55. 跳跃游戏;45.跳跃游戏II补充:122.买卖股票的最佳时机II本题解法很巧妙,大家可以看题思考一下,在看题解。55. 跳跃游戏本题如果没接触过,很难想到,所以不要自己憋时间太久,读题思考一会,没思路立刻看题解。
2023-09-11 16:48:35
490
原创 leetcode刷题(第二十七天)39. 组合总和; 40.组合总和II; 131.分割回文串
39. 组合总和;40.组合总和II;131.分割回文串39. 组合总和本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制40.组合总和II本题开始涉及到一个问题了:去重。注意题目中给我们 集合是有重复元素的,那么求出来的 组合有可能重复,但题目要求不能有重复组合。
2023-09-05 22:22:10
33
原创 leetcode刷题(第二十三天)669. 修剪二叉搜索树 ;108.将有序数组转换为二叉搜索树 ;538.把二叉搜索树转换为累加树 ; 总结篇
今日任务:669. 修剪二叉搜索树 ;108.将有序数组转换为二叉搜索树 ;538.把二叉搜索树转换为累加树 ; 总结篇卡哥建议:重点:参考链接:代码随想录:代码随想录 (programmercarl.com)题目讲解(全):代码随想录题目建议:这道题目比较难,比 添加增加和删除节点难的多,建议先看视频理解刷题链接:视频讲解:你修剪的方式不对,我来给你纠正一下!| LeetCode:669. 修剪二叉搜索树_哔哩哔哩_bilibili看到题目的第一思路:看完代码随想录之后的想法:自己实现过程中遇到哪些困难:
2023-09-05 09:08:42
27
原创 leetcode刷题(第二十五天) 216.组合总和III;17.电话号码的字母组合
216.组合总和III;17.电话号码的字母组合216.组合总和III如果把 组合问题理解了,本题就容易一些了。17.电话号码的字母组合本题大家刚开始做会有点难度,先自己思考20min,没思路就直接看题解。
2023-09-02 11:17:22
719
原创 leetcode刷题(第二十四天)理论基础 ; 77. 组合
leetcode刷题(第二十四天)理论基础;77. 组合理论基础;77. 组合理论基础其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。77. 组合对着 在回溯算法理论基础 给出的代码模板,来做本题组合问题,大家就会发现写回溯算法套路。在回溯算法解决实际问题的过程中,大家会有各种疑问,先看视频介绍,基本可以解决大家的疑惑。本题关于剪枝操作是大家要理解的重点,因为后面很多回溯算法解决的题目,都是这个剪枝套路。
2023-09-01 23:09:58
734
原创 leetcode刷题(第二十二天) 235. 二叉搜索树的最近公共祖先 ;701.二叉搜索树中的插入操作 ; 450.删除二叉搜索树中的节点
235. 二叉搜索树的最近公共祖先;701.二叉搜索树中的插入操作;450.删除二叉搜索树中的节点235. 二叉搜索树的最近公共祖先相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。701.二叉搜索树中的插入操作本题比想象中的简单,大家可以先自己想一想应该怎么做,然后看视频讲解,就发现 本题为什么比较简单了。
2023-08-29 21:57:55
24
1
原创 leetcode刷题(第二十一天) 530.二叉搜索树的最小绝对差 ; 501.二叉搜索树中的众数 ; 236. 二叉树的最近公共祖先
530.二叉搜索树的最小绝对差;501.二叉搜索树中的众数;236. 二叉树的最近公共祖先530.二叉搜索树的最小绝对差需要领悟一下二叉树遍历上双指针操作,优先掌握递归501.二叉搜索树中的众数和 530差不多双指针思路,不过 这里涉及到一个很巧妙的代码技巧。可以先自己做做看,然后看我的视频讲解。
2023-08-29 14:46:09
36
1
原创 leetcode刷题(第二十天)654.最大二叉树 ; 617.合并二叉树 ; 700.二叉搜索树中的搜索 ; 98.验证二叉搜索树
654.最大二叉树;617.合并二叉树;700.二叉搜索树中的搜索;98.验证二叉搜索树654.最大二叉树又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历617.合并二叉树这次是一起操作两个二叉树了, 估计大家也没一起操作过两个二叉树,也不知道该如何一起操作,可以看视频先理解一下。优先掌握递归。
2023-08-29 14:39:40
34
原创 leetcode刷题(第十八天) 513.找树左下角的值; 112. 路径总和 113.路径总和ii; 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
513.找树左下角的值;112. 路径总和 113.路径总和ii;106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树513.找树左下角的值本地递归偏难,反而迭代简单属于模板题, 两种方法掌握一下112. 路径总和本题 又一次设计要回溯的过程,而且回溯的过程隐藏的还挺深,建议先看视频来理解112. 路径总和,和 113. 路径总和ii 一起做了。优先掌握递归法。
2023-08-29 14:33:38
40
原创 leetcode刷题(第十七天)110.平衡二叉树 ;257. 二叉树的所有路径 ;404.左叶子之和
110.平衡二叉树;257. 二叉树的所有路径;404.左叶子之和迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。110.平衡二叉树(优先掌握递归)再一次涉及到,什么是高度,什么是深度,可以巩固一下。257. 二叉树的所有路径(优先掌握递归)这是大家第一次接触到回溯的过程, 我在视频里重点讲解了 本题为什么要有回溯,已经回溯的过程。如果对回溯 似懂非懂,没关系, 可以先有个印象。
2023-08-29 11:39:02
916
原创 leetcode刷题(第十六天)104.二叉树的最大深度 559.n叉树的最大深度; 111.二叉树的最小深度;222.完全二叉树的节点个数
104.二叉树的最大深度 559.n叉树的最大深度;111.二叉树的最小深度;222.完全二叉树的节点个数卡哥建议:迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。104.二叉树的最大深度(优先掌握递归)什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。大家 要先看视频讲解,就知道以上我说的内容了,很多录友刷过这道题,但理解的还不够。559.n叉树的最大深度。
2023-08-29 11:34:11
949
原创 leetcode刷题(第十五天)层序遍历 10 ; 226.翻转二叉树 ; 101.对称二叉树 2
层序遍历 10;226.翻转二叉树;101.对称二叉树 2层序遍历 10看完本篇可以一口气刷十道题,试一试, 层序遍历并不难,大家可以很快刷了十道题。应用递归法实现226.翻转二叉树这道题目 一些做过的同学 理解的也不够深入,建议大家先看我的视频讲解,无论做过没做过,都会有很大收获。递归法--前序遍历--后序遍历(顺序交换)递归法--中序遍历(也不叫中序遍历了就)迭代法--深度优先遍历--前序遍历--后序遍历(顺序交换)
2023-08-29 11:27:06
928
原创 leetcode刷题(第十四天)理论基础;递归遍历 ;迭代遍历;统一迭代
理论基础;递归遍历;迭代遍历;统一迭代理论基础需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义。
2023-08-22 16:47:06
1081
1
原创 leetcode刷题(第十三天)239. 滑动窗口最大值; 347.前 K 个高频元素; 总结
今日任务:239. 滑动窗口最大值; 347.前 K 个高频元素; 总结卡哥建议:重点: 参考链接:代码随想录:代码随想录 (programmercarl.com) 题目讲解(全):代码随想录题目建议:之前讲的都是栈的应用,这次该是队列的应用了。本题算比较有难度的,需要自己去构造单调队列,建议先看视频来理解。 刷题链接:力扣题目链接视频讲解:LeetCode:239. 滑动窗口最大值 (opens new window)自己实现过程中遇到哪些困难:每日精华:类似题目:题目讲解(全):代码随想录题目建议
2023-08-21 19:45:52
1236
1
原创 leetcode刷题(第十一天)20. 有效的括号; 1047. 删除字符串中的所有相邻重复项; 150. 逆波兰表达式求值
20. 有效的括号;1047. 删除字符串中的所有相邻重复项;150. 逆波兰表达式求值20. 有效的括号栈的经典应用大家先自己思考一下 有哪些不匹配的场景,在看视频 我讲的都有哪些场景,落实到代码其实就容易很多了1047. 删除字符串中的所有相邻重复项。
2023-08-21 14:52:12
1227
1
原创 leetcode刷题(第十天)理论基础; 232.用栈实现队列; 225. 用队列实现栈
理论基础;232.用栈实现队列;225. 用队列实现栈补充:理论基础了解一下 栈与队列的内部实现机制,文中是以C++为例讲解的。栈与队列被归类为容器适配器,是STL的两个数据结构。232.用栈实现队列大家可以先看视频,了解一下模拟的过程,然后写代码会轻松很多。
2023-08-18 12:54:11
1265
1
原创 leetcode刷题(第九天)28. 实现 strStr();459.重复的子字符串;字符串总结 ;双指针回顾
kmp----进一步理解后再写今日任务:28. 实现 strStr();459.重复的子字符串;字符串总结 ;双指针回顾卡哥建议:重点:参考链接:代码随想录:代码随想录 (programmercarl.com)题目讲解(全):代码随想录题目建议:因为KMP算法很难,大家别奢求 一次就把kmp全理解了,大家刚学KMP一定会有各种各样的疑问,先留着,别期望立刻啃明白,第一遍了解大概思路,二刷的时候,再看KMP会 好懂很多。或者说大家可以放弃一刷可以不看KMP,今天来回顾一下之前的算法题目就可以。因为大家 算法能
2023-08-18 09:31:44
1476
1
原创 leetcode刷题(第八天)344.反转字符串;541. 反转字符串II; 剑指Offer 05.替换空格;151.翻转字符串里的单词; 剑指Offer58-II.左旋转字符串
344.反转字符串;541. 反转字符串II;剑指Offer 05.替换空格;151.翻转字符串里的单词;剑指Offer58-II.左旋转字符串344.反转字符串本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数541. 反转字符串II本题又进阶了,自己先去独立做一做,然后在看题解,对代码技巧会有很深的体会。自己实现reversewhile条件实现。
2023-08-16 23:02:42
1321
1
原创 leetcode刷题(第七天)454.四数相加II ;383. 赎金信 ;15. 三数之和 ;18. 四数之和;总结
map[a+b]++:意思是遇到a+b的key,累加一次对应的value;
2023-08-16 14:28:31
1533
1
原创 leetcode刷题(第六天) 哈希表理论基础 ;242.有效的字母异位词 ; 349. 两个数组的交集 ; 202. 快乐数; 1. 两数之和
哈希表理论基础;242.有效的字母异位词;349. 两个数组的交集;202. 快乐数;1. 两数之和卡哥建议:什么时候想到用哈希法。。补充:35搜索插入位置;34在排序数组中查找元素的第一个和最后一个位置;69.X的平方根;367.有效的完全平方数哈希表理论基础大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。
2023-08-15 10:59:38
1633
1
原创 leetcode刷题(第四天)24. 两两交换链表中的节点 ; 19.删除链表的倒数第N个节点 ; 面试题 02.07. 链表相交 ; 142.环形链表II ; 总结
leetcode刷题(第二天)977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结24. 两两交换链表中的节点;19.删除链表的倒数第N个节点;面试题 02.07. 链表相交;142.环形链表II;总结两两交换链表中的节点用虚拟头结点,这样会方便很多。本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。删除链表的倒数第N个节点。
2023-08-13 21:55:48
24
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人