自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第60天| Leetcode 84.柱状图中最大的矩形

单调栈还需要多刷题,仅仅掌握几道经典题目是不够的。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-15 18:27:21 405

原创 代码随想录算法训练营第59天| Leetcode 503.下一个更大元素II、Leetcode 42. 接雨水

单调栈逐渐熟练,

2024-03-15 16:59:32 820

原创 代码随想录算法训练营第58天| Leetcode 739. 每日温度、Leetcode 496.下一个更大元素 I

单调栈的应用范围:在一维数组中,寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置。

2024-03-14 21:07:43 391

原创 代码随想录算法训练营第57天| Leetcode 647. 回文子串、Leetcode 516.最长回文子序列

尽管动态规划题目到这里已经结束,但是真正掌握dp还远不如此,与君共勉!

2024-03-12 20:03:32 841

原创 代码随想录算法训练营第55天| Leetcode 583. 两个字符串的删除操作、Leetcode 72. 编辑距离

有了前面题目的铺垫,这两道题很轻松最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-09 14:05:16 898

原创 代码随想录算法训练营第54天| Leetcode 392.判断子序列、Leetcode 115.不同的子序列

最后一道题的递推公式不太好理解,我感觉我并没有理解透彻。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-08 15:09:36 862

原创 代码随想录算法训练营第53天| Leetcode 1143.最长公共子序列、Leetcode 1035.不相交的线、Leetcode 53. 最大子序和

做了这么多动态规划的题目,感觉最重要的就是学会举一反三。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-08 11:24:35 802

原创 代码随想录算法训练营第52天| Leetcode 300.最长递增子序列、Leetcode 674. 最长连续递增序列、Leetcode 718. 最长重复子数组

最后一道题的。

2024-03-07 23:01:51 867

原创 代码随想录算法训练营第51天| Leetcode 309.最佳买卖股票时机含冷冻期、Leetcode 714.买卖股票的最佳时机含手续费

含冷冻期的这道题还是值得仔细思考的,一定要理解好递推公式的思路。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-06 16:08:23 816

原创 代码随想录算法训练营第50天| Leetcode 123.买卖股票的最佳时机III、Leetcode 188.买卖股票的最佳时机IV

理解了之前两道买卖股票的递推公式原理,这两道题还是很简单的。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-05 18:51:13 790

原创 代码随想录算法训练营第48天| Leetcode 121. 买卖股票的最佳时机、Leetcode 122.买卖股票的最佳时机II

这两道题不算难,不过需要理解好两道题的递推公式,不仅要知其然,还要知其所以然。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-04 18:09:38 919

原创 代码随想录算法训练营第47天| Leetcode 198.打家劫舍、Leetcode 213.打家劫舍II、Leetcode 337.打家劫舍 III

最后一道题还是有难度的,不仅需要理解动态规划,还要掌握二叉树的遍历。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-03 15:22:33 839

原创 代码随想录算法训练营第46天| Leetcode 139.单词拆分、卡码网 56. 携带矿石资源(附带多重背包的基本解法和优化)

遇到一个新问题首先我们可以思考是否可以利用已有知识来解决,就像多重背包的解法就是基于01背包和完全背包。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-03-03 11:48:18 818

原创 算法日记——前缀和、差分

对于前缀和、差分来说,一般比赛时不会直接作为考点,而是融合在其他类型题目中:比如利用前缀和、差分来对初始数组进行操作,从而方便我们解决问题。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-29 15:35:52 461

原创 代码随想录算法训练营第45天| 卡码网 57. 爬楼梯、Leetcode 322. 零钱兑换、Leetcode 279.完全平方数

理解了完全背包问题之后,这三道题还是很简单的,唯一的难点在于将题目抽象成完全背包问题。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-28 23:43:51 730

原创 代码随想录算法训练营第44天| Leetcode 518.零钱兑换II、Leetcode 377. 组合总和 Ⅳ

如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-27 13:12:36 888

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

Leetcode 1049.最后一块石头的重量II有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x <= y。如果x == y,那么两块石头都会被完全粉碎;如果x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回0。本题可以利用01背包来解决。为何会想到利用01背包呢?

2024-02-26 17:54:12 875

原创 代码随想录算法训练营第41天|卡码网 46. 携带研究材料、Leetcode 416. 分割等和子集

01背包问题算是背包问题中的基础问题,理解其原理之后会对后续更复杂的背包问题更有帮助。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-25 23:40:27 696

原创 代码随想录算法训练营第40天| Leetcode 343. 整数拆分、Leetcode 96.不同的二叉搜索树

算法的尽头也是数学啊!最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-25 20:12:25 857

原创 代码随想录算法训练营第39天| Leetcode 62.不同路径、Leetcode 63. 不同路径 II

这两道题还是比较简单的,递推公式很好想到。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-23 14:05:39 1110

原创 代码随想录算法训练营第38天| Leetcode 509. 斐波那契数、Leetcode 70. 爬楼梯、Leetcode 746. 使用最小花费爬楼梯

刚开始的三道动态规划题目很简单,主要是练习动态规划的解题关键:如何定义。

2024-02-23 11:59:19 883

原创 代码随想录算法训练营第37天| Leetcode 738.单调递增的数字、968.监控二叉树

贪心类题目多积累吧,遇到新题目没思路确实不好搞。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-22 22:32:35 902

原创 代码随想录算法训练营第36天| Leetcode 435. 无重叠区间、763.划分字母区间、56. 合并区间

今天的第二道题。

2024-02-21 12:02:10 909

原创 代码随想录算法训练营第34天| Leetcode 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

很多贪心类题目第一次做几乎不太可能想到,因此需要。

2024-02-18 17:22:40 715

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

贪心的题目最重要的就是该如何想到贪心策略,因此需要多多练习题目。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-18 12:59:43 876

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

贪心的题目难就难在该如何寻找某种决策,能使每次根据局部最优的决策,并且最终达到整体最优的结果。任重而道远啊!最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-17 20:30:57 861

原创 代码随想录算法训练营第31天| Leetcode 455.分发饼干、376. 摆动序列、53. 最大子数组和

子序列可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。给你一个整数数组 nums ,返回 nums 中作为 摆动序列 的 最长子序列的长度。这道题我第一反应是利用动态规划解决,因为根据摆动序列定义可以知道,摆动序列的数字是。为了满足更多的小孩,就不要造成饼干尺寸的浪费。

2024-02-17 01:22:34 900

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

今天这三道题难度还是很大的,勉强理解代码。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-14 22:37:54 396

原创 代码随想录算法训练营第29天| Leetcode 491.递增子序列、46.全排列、47.全排列 II

今天主要是辨析对于含有相同元素的排序问题,如何实现去重操作:(1)对于寻找。

2024-02-07 23:23:14 378

原创 代码随想录算法训练营第28天| Leetcode 93.复原IP地址、78.子集、90.子集II

回溯法思路简单,但是代码很难一次写对。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-06 12:37:55 412

原创 代码随想录算法训练营第27天| Leetcode 39. 组合总和、40.组合总和II、131.分割回文串

感觉回溯算法很好理解hhh,不过最后一道题利用动态规划优化这块还是不太好想。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-05 09:46:39 819

原创 代码随想录算法训练营第25天| Leetcode 216.组合总和III、17.电话号码的字母组合

今天的回溯也不算难,不过想一次写对也不太容易。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-03 19:48:59 370

原创 代码随想录算法训练营第24天| Leetcode 77.组合(回溯+回溯优化)

举个例子,我们在玩迷宫游戏的时候,如何找到从起点到终点的一条路线呢?最简单的想法就是走一步看一步,如果遇到岔路口,就按顺序把每个路口都走一遍,遇到死胡同就退回来换一个路口,直到找到终点。举个例子,n = 4,k = 3, 目前已经选取的元素为0(path.size为0),n - (k - 0) + 1 即 4 - ( 3 - 0) + 1 = 2。第一反应是直接for循环,仔细读题后发现k是未知的,不能确定是多少层嵌套循环,因此可以。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-02 17:16:01 340

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

题目链接:Leetcode 669. 修剪二叉搜索树题目描述:给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。思路:这道题第一反应和450.删除二叉搜索树中的节点没什么区别,不过仔细分析之后发现,我们不确定被删除节点的子树是否需要删除,因此还需要利用二叉搜索树的性质递归寻找其子树不需要被删除的节点,然后返回才可以。代码如下:(递归法)因为二叉搜索树的有

2024-02-01 22:30:47 341

原创 代码随想录算法训练营第22天| Leetcode 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点(对于优化代码附带详解)

今天最后一道题的优化思路不太容易理解,想了很长时间算是给出了一种比较合理的解释吧。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-02-01 15:54:47 834

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

今天最后一道题思维难度有点大,理解了很长时间才把思路和代码结合起来。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-01-31 19:04:01 911

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

今天的题比较基础,完成的比较轻松,可以用来复习二叉树的基础内容。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

2024-01-30 23:24:55 815

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

这道题既可以用递归法也可以用迭代法。递归寻找最大深度或者一层一层迭代寻找最大深度。

2024-01-29 22:03:35 892

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

这里我们发现,迭代法的代码用到了两个栈,而且细节很多,还包括了回溯的思想,稍有不慎就可能漏掉某些细节,然后debug很长时间。所以递归还是很香的hhh。

2024-01-27 22:14:29 410

原创 代码随想录算法训练营第16天| Leetcode 104.二叉树的最大深度、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

对于(1),可以直接用 2^树深度 - 1 来计算,注意这里根节点深度为1。对于(2),分别递归左孩子,和右孩子,递归到某一深度一定会有左孩子或者右孩子为满二叉树,然后依然可以按照情况1来计算。接下来思考如何判断是否是满二叉树?

2024-01-27 17:13:54 742

空空如也

空空如也

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

TA关注的人

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