自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 代码随想录day50|198.打家劫舍、213.打家劫舍II、337.打家劫舍 III

198.打家劫舍 (中等198.打家劫舍 (中等。

2023-10-31 17:27:46 303

原创 代码随想录训练营day49|139.单词拆分

中等中等。

2023-10-31 15:55:45 243

原创 代码随想录训练营day46|518.零钱兑换II、377. 组合总和 Ⅳ

377. 组合总和 Ⅳ(中等。

2023-10-26 08:41:17 252

原创 代码随想录训练营day45|1049. 最后一块石头的重量 II、494.目标和、474.一和零

1049. 最后一块石头的重量 II(中等。

2023-10-24 19:52:49 203

原创 代码随想录训练营day44|416. 分割等和子集

416. 分割等和子集 (中等)本题用01背包思路解题,关于01背包的详细请参考。

2023-10-24 17:46:24 107

原创 代码随想录训练营day48|322. 零钱兑换、279.完全平方数

【代码】代码随想录训练营day48|322. 零钱兑换、279.完全平方数。

2023-10-24 17:04:07 114

原创 代码随想录训练营day42|343. 整数拆分、96.不同的二叉搜索树

中等中等。

2023-10-18 15:05:59 164

原创 代码随想录训练营day42|62.不同路径、63. 不同路径 II

对于没有障碍物的点:由于机器人只能向下或向右走,故第(i,j)个位置只能由第(i-1,j)向下走或第(i,j-1)向右走。所有dp[i][j] = dp[i-1][j] + dp[i][j-1];而第0行和第0列均只有一种走法,故dp[i][0] = dp[0][j] = 1;同上题一样,dp[i][j]代表从(0,0)到达(i,j)有多少条路径(多少种走法)。所有dp[i][j] = dp[i-1][j] + dp[i][j-1];对于有障碍物的点:dp[i][j] = 0;从上至下,从左至右。

2023-10-17 15:11:10 121

原创 代码随想录训练营day41|509. 斐波那契数

746. 使用最小花费爬楼梯 (简单509. 斐波那契数简单。

2023-10-16 16:59:49 101

原创 代码随想录训练营day39|738.单调递增的数字

738.单调递增的数字。

2023-10-16 15:10:51 115

原创 代码随想录训练营day38|435. 无重叠区间、763.划分字母区间

435. 无重叠区间 (中等。

2023-10-13 19:52:50 162

原创 代码随想录训练营day37|860.柠檬水找零、406.根据身高重建队列

406.根据身高重建队列 (中等860.柠檬水找零(简单。

2023-10-12 16:01:33 136

原创 代码随想录训练营day36|1005.K次取反后最大化的数组和、 134. 加油站、135. 分发糖果

1005.K次取反后最大化的数组和(简单。

2023-10-11 15:01:50 146

原创 代码随想录训练营day35|122.买卖股票的最佳时机II、55. 跳跃游戏、 45.跳跃游戏II

122.买卖股票的最佳时机II(中等122.买卖股票的最佳时机II(中等。

2023-10-10 13:31:08 193

原创 代码随想录训练营day34|455.分发饼干、376. 摆动序列、53. 最大子序和

简单简单。

2023-10-09 15:57:36 217

原创 代码随想录训练营day32|332.重新安排行程、51.N皇后、37. 解数独

【代码】代码随想录训练营day32|332.重新安排行程、51.N皇后、37. 解数独。

2023-10-07 19:19:59 160

原创 代码随想录训练营day31|491.递增子序列、46.全排列、47.全排列 II

中等。

2023-10-07 16:28:36 113

原创 代码随想录训练营day30|93.复原IP地址、78.子集、90.子集II

78.子集(中等)93.复原IP地址 (中等(从未有过如此美妙的开局,请为我欢呼)

2023-10-05 16:27:37 121

原创 代码随想录训练营day29|39. 组合总和、40.组合总和II、

39. 组合总和(中等39. 组合总和(中等。

2023-10-05 15:28:07 131

原创 代码随想录训练营day28|216.组合总和III、17.电话号码的字母组合

中等中等。

2023-10-05 13:48:37 154

原创 代码随想录训练营day27|回溯 77. 组合

这里首先贴出回溯算法的模板。

2023-10-02 14:40:35 177

原创 代码随想录训练营day23|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

leetcode题目链接:669. 修剪二叉搜索树 - 力扣(LeetCode)文章讲解:代码随想录 (programmercarl.com)视频讲解: 你修剪的方式不对,我来给你纠正一下!| LeetCode:669. 修剪二叉搜索树_哔哩哔哩_bilibili 首先我们明确,这是一颗二叉树搜索树。如果当前节点cur,cur->val < low,那么该节点的左子树全部都小于low,在删除该节点时,左子树也一并删除。如果cur-> val > high,那么该节点的右子树全部都大于high,

2023-09-28 19:28:31 83

原创 代码随想录训练营day22|235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

中等中等。

2023-09-27 18:06:11 121

原创 代码随想录训练营day21|530.二叉搜索树的最小绝对差、 501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

简单简单。

2023-09-26 20:20:31 95

原创 代码随想录训练营day20|654.最大二叉树 、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

以第一棵树为最终根,递归遍历左右子树。如果root1的左/右子树为空,就返回root2的左/右子树,同理相反。按照二叉搜索树的定义,val大于根就向右,小于根就向左。当root==nullptr时就代表没有搜索到。这道题跟前面构造二叉树的题目类似,仅需要在区间分割时注意即可。

2023-09-25 21:45:57 126 1

原创 代码随想录训练营day18|513.找树左下角的值、112. 路径总和 、113.路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

简单简单。

2023-09-25 16:55:40 90 1

原创 代码随想录训练营day17|110.平衡二叉树、257. 二叉树的所有路径、 404.左叶子之和

1.首先我们要用一个vector来保存此次遍历的一条路径上的节点,遇到叶子节点时将整个vector装入答案vector中。我们只能判断一个节点是不是叶子节点,但无法判断一个节点是不是左叶子节点。如果左右子树的高度都不为-1且高度差<=1,那么该节点的高度为1+max(左子树高度,右子树高度)。如果左子树的高度为-1,就代表左子树已经不是平衡二叉树,故继续返回-1,右子树同理。如果左右子树高度差>1,代表该二叉树不是平衡二叉树,返回-1。采用后序遍历,如果一个叶子节点是左叶子节点,就加上它的值。

2023-09-22 17:59:33 116 1

原创 代码随想录训练营day16|104.二叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数

简单简单。

2023-09-21 21:16:06 98

原创 代码随想录训练营day15|102.二叉树的层序遍历、226.翻转二叉树、101. 对称二叉树

中等中等。

2023-09-20 14:29:28 146 1

原创 代码随想录训练营day14|144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历

先序遍历是中左右,后续遍历是左右中,那么我们只需要调整一下先序遍历的代码顺序,就变成中右左的遍历顺序,然后在反转result数组,输出的结果顺序就是左右中了。对于中序遍历,由于我们遍历到的节点和要处理的节点不是同一个节点,所以就需要借用指针的遍历来帮助访问节点,栈则用来处理节点上的元素。如何标记呢,就是要处理的节点放入栈之后,紧接着放入一个空指针作为标记。这种方法也可以叫做标记法。那我们就将访问的节点放入栈中,把要处理的节点也放入栈中但是要做标记。注意:迭代入栈时要先右再左,这样出栈的时候才能先左后右。

2023-09-19 20:14:47 232

原创 代码随想录训练营day13|239. 滑动窗口最大值、347.前 K 个高频元素

需要掌握单调队列的思想以及代码实现。优先队列的使用。

2023-09-18 16:02:39 71

原创 代码随想录训练营day11| 20. 有效的括号 、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

栈的经典应用。栈的经典应用,消消乐游戏的原理。要充分利用栈先进后出的性质。

2023-09-16 10:47:59 101 1

原创 代码随想录训练营第10天|232.用栈实现队列、225. 用队列实现栈

一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。两个栈一个作为入队列,一个作为出队列,会比来回push效率高。

2023-09-15 15:59:28 138 1

原创 代码随想录训练营第9天|28. 实现 strStr()、459.重复的子字符串

对于KMP算法,还需要加深理解。

2023-09-14 14:51:15 64 1

原创 代码随想录训练营第8天|344.反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、 剑指Offer58-II.左旋转字符串

建议大家平时在leetcode上练习算法的时候本着这样的原则去练习,这样才有助于我们对算法的理解。不要沉迷于使用库函数一行代码解决题目之类的技巧,不是说这些技巧不好,而是说这些技巧可以用来娱乐一下。真正自己写的时候,要保证理解可以实现是相应的功能。我的评价是,读题比解题难。其实很多数组填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作。这么做有两个好处:1.不用申请新数组。

2023-09-13 16:55:12 94 1

原创 代码随想录训练营第7天|454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

本题是经典的哈希表中使用map的题,需要理解为什么使用map以及具体的使用方法。在哈希法中有一些场景就是为数组量身定做的,要注意辨别。对于顺序表问题,如果哈希法的操作较为复杂,则不应只考虑哈希法,也应该考虑顺序表中其他解题方法,如双指针。一样的道理,五数之和、六数之和等等都采用这种解法。

2023-09-12 15:35:58 120

原创 代码随想录训练营第6天|242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1.两数之和

本题是哈希法在数组上的应用,比较适合当作哈希法入门的题目。哈希表的经典应用“查找一个数据在不在表中”,以及要掌握STL的基础操作。202. 快乐数(简单leetcode题目链接:202. 快乐数 - 力扣(LeetCode)代码随想录 (programmercarl.com)本题无视频讲解本题循环跳出条件是隐晦的,要自行判断出sum重复出现就代表不是快乐数这一条件。本题在这四题里第一次出现map,要体会数组、set、map在不同情况下的应用。

2023-09-11 16:49:09 339

原创 代码随想录训练营第4天|24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II

cur一定指向要操作的两个节点的前一个节点,分别用用temp1,temp2两个节点来保存需要操作的节点,写代码会比较容易。链表也是顺序表,在做题时也可以考虑双指针的方法。对于第二种方法,还是要多想多练才能想到。环形链表双指针思路需要重点掌握。

2023-09-09 15:20:39 481 1

原创 代码随想录训练营第二天|203.移除链表元素、707.设计链表 、206.反转链表

本题最关键是要理解“虚拟头结点”的使用技巧,这个对链表题目很重要。此题目不是很难,但是需要把控的细节很多。包括链表长度的维护,下标对应的位置,是否插入的是头节点等。

2023-09-08 22:32:06 503 1

原创 代码随想录训练营第二天|977.有序数组的平方

两侧双指针的思路。核心思路是滑动窗口(双指针)。j指向的一定是滑动窗口的末位置而不是初位置,如果指向初位置,移动末位置,其实依然为暴力解法。

2023-09-07 20:15:52 577 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除