自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法刷题Day 60 柱状图中的最大矩阵

比自己小的索引(的前一个位置),这个范围之内,就是以当前位置的高度所能达到的最大宽度。有了接雨水那道题的经验,这一道题可以模仿着做出了。比自己小的索引(的后一个位置)和右边。分别找出当前位置左边。

2023-08-05 10:23:13 1156

原创 算法刷题Day 59 下一个更大元素II+接雨水

其实也可以不扩充nums,而是在遍历的过程中模拟走了两边nums三种方法都写了一遍。

2023-08-04 15:43:48 463

原创 算法刷题Day 58 每日温度+下一个更大元素I

【代码】算法刷题Day 58 每日温度+下一个更大元素I。

2023-08-03 09:03:17 523

原创 算法刷题Day 57 回文子串+最长回文子序列

【代码】算法刷题Day 57 回文子串+最长回文子序列。

2023-08-02 09:36:53 280

原创 算法刷题Day 56两个字符串的删除操作+编辑距离

【代码】算法刷题Day 56两个字符串的删除操作+编辑距离。

2023-08-01 14:04:57 268

原创 算法刷题Day 55 判断子序列+不同的子序列

就是用求最长公共子序列的方法,最后在返回时判断长度。双指针的方法似乎更加简单一点。

2023-07-31 11:10:24 215

原创 算法刷题Day 53 最长公共子序列+不相交的线+最大子数组和

int仔细想想,好像就是求两个数组的最长公共子序列int。

2023-07-28 21:43:07 323

原创 算法刷题Day 52 最长递增子序列+最长连续递增子序列+最长重复子数组

我自己想出来的方法,时间复杂度应该是。

2023-07-28 10:05:37 312

原创 算法刷题Day 51 最佳买卖股票时机含冷冻期+买卖股票的最佳时期含手续费

这道题其实就是在买卖股票II的基础上加入一点变化而已,代码框架还是那个框架。然后根据状态转移图来写状态转移方程。关键是要画出状态转移图。

2023-07-27 21:29:49 417

原创 算法刷题Day 50 买卖股票的最佳时机III+买卖股票的最佳时机IV

前两道题的结合,需要更多位置来记录状态。这道题是买卖股票III的升级版。

2023-07-26 15:37:49 377

原创 算法刷题Day 49 买卖股票的最佳时机+买卖股票的最佳时机II

相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。那么根据 prices 可以得到每天的利润序列:(prices[i] - prices[i - 1])…(prices[1] - prices[0])。假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。取最左最小值,取最右最大值,那么得到的差值就是最大利润。

2023-07-25 09:26:01 321

原创 算法刷题Day 48 打家劫舍+打家劫舍II+打家劫舍III

分成两段来处理:比如说输入的长度是n(0~n-1),就分成[0, n - 1)和[1, n)两部分。写一个辅助函数,返回两个状态,抢或者不抢能得到的最大收获。

2023-07-24 12:57:31 84

原创 算法刷题Day 46 单词拆分+多重背包问题

有N种物品和一个容量为V 的背包。第i种物品最多有Mi件可用,每件耗费的空间是Ci ,价值是Wi。求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量,且价值总和最大。多重背包可以转换为0-1背包来解答。

2023-07-24 09:24:22 456

原创 算法刷题Day 45 爬楼梯+零钱兑换+完全平方数

完全背包-排序先背包再物品。

2023-07-21 13:36:36 382

原创 算法刷题Day 44 完全背包理论基础+零钱兑换+组合综合IV

求组合:先物品再背包。求排列:先背包再物品。完全背包问题,求组合。完全背包问题,求排列。

2023-07-20 12:43:06 381

原创 算法刷题Day 43 最后一块石头的重量II+目标和+一和零

纯 0 - 1 背包 (opens new window)是求 给定背包容量 装满背包 的最大价值是多少。416. 分割等和子集 (opens new window)是求 给定背包容量,能不能装满这个背包。1049. 最后一块石头的重量 II (opens new window)是求 给定背包容量,尽可能装,最多能装多少494. 目标和 (opens new window)是求 给定背包容量,装满背包有多少种方法。474. 一和零是求 给定背包容量,装满背包最多有多少个物品。

2023-07-19 13:36:36 680

原创 算法刷题Day 42 背包问题理论基础+分割等和子集

dpdpdp。

2023-07-17 22:09:23 669

原创 算法刷题Day 41 整数拆分+不同的二叉搜索树

这道题没回忆起来,稍微参考了一下答案。

2023-07-17 09:35:47 682

原创 算法刷题Day 39 不同路径+不同路径II

那二叉树的节点个数就是 2^(m + n - 1) - 1。可以理解深搜的算法就是遍历了整个满二叉树(其实没有遍历整个满二叉树,只是近似而已)所以上面深搜代码的时间复杂度为O(2^(m + n - 1) - 1),可以看出,这是指数级别的时间复杂度,是非常大的。来分析一下时间复杂度,这个深搜的算法,其实就是要遍历整个二叉树。这棵树的深度其实就是m+n-1(深度按从1开始计算)。使用递归的方法超时(可以过37个case)

2023-07-14 21:35:13 897

原创 算法刷题Day 38 动态规划理论基础+斐波那契数+爬楼梯

dpdpdp。

2023-07-13 19:55:34 989

原创 算法刷题Day 37 单调递增的数字+监听二叉树

利用树后续遍历,同时加上状态转移的方法,非常值得反复学习。两个可能经常要用到的函数。

2023-07-13 19:40:27 883

原创 算法刷题Day 36 无重叠区间+划分字母区间+合并区间

使用哈希表来记录字母最后一次出现的位置还是比较巧妙的。思路是能想到,但是实现起来就没那么得心应手了。有了前面的经验,这道题终于是自己解决了。

2023-07-13 17:17:26 806

原创 算法刷题Day 35 柠檬酸找零+根据身高重建队列+用最少数量的箭引爆气球

本题有两个维度,看到这种题目一定要想如何确定一个维度,然后再按照另一个维度重新排列。先排身高(从大到小),再排第二个条件。

2023-07-13 15:01:28 689

原创 算法刷题Day 34 K次取反后最大化的数组和+加油站+分发糖果

代码随想录里面是按照绝对值从大到小进行排序的,这样就不用进行两次排序。

2023-07-13 13:30:07 758

原创 算法刷题Day 32 买卖股票的最佳时机II+跳跃游戏+跳跃游戏II

【代码】算法刷题Day 32 买卖股票的最佳时机II+跳跃游戏+跳跃游戏II。

2023-07-08 15:18:09 836

原创 算法刷题Day 31 分发饼干+摆动序列+最大子序列和

分发饼干其实有很多种写法,但是下面这种贪心的解法是最好理解,也最好解释的我的其他解法intint。

2023-07-08 10:50:36 1801

原创 算法刷题Day 30 重新安排行程+N皇后+解数独

大概有思路,但是实现起来,还是容易卡在回溯的模板里,这道题其实不是完全照搬回溯的模板就能解决的,有一点差异。这一题的解法也非常考验对数据结构的运用。想了很久,最后还是放弃了。

2023-07-06 16:42:53 907

原创 算法刷题Day 29 递增子序列+全排列+全排列II

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9nrEEc2S-1688623883770)(LC491-递增子序列+LC.assets/image-20230703201315163.png)]本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。需要有一个used数组来记录已经被使用过的元素索引。

2023-07-06 14:12:03 1136

原创 算法刷题Day 28 复原IP地址+子集+子集II

我的做法有点奇怪,还是参考一下代码随想录的做法吧。涉及到去重,可别忘了排序。不然去重的效果没法实现。

2023-07-04 09:07:32 1124

原创 算法刷题Day 27 组合总和+组合总和II+分割回文子串

前面我们提到:要去重的是“同一树层上的使用过”,如何判断同一树层上元素(相同的元素)是否使用过了呢。其实只要在原来的基础上添加一点小小的变化就是实现重复选取(与排列区别开),一时没想出来。最大的不同就是要去重了。

2023-07-03 08:09:06 1196

原创 算法刷题Day 23 修剪二叉搜索树+将有序数组转换为二叉搜索树+把二叉搜索树转换为累加树

好神奇,完全凭感觉写,感觉应该过不了,结果就过了具体是什么原理可以参考代码随想录的讲解。

2023-07-01 19:48:17 1413

原创 算法刷题Day 22 二叉搜索树的最近公共祖先+二叉搜索树中的插入操作+删除二叉搜索树中的节点

根据二叉搜索树的性质,相比普通二叉树可以极大程度的简化代码,作为公共祖先其值一定在两个给定节点值之间,从树根往下遍历,第一次出现两个给定节点值之间的值,那个节点即为最近公共祖先(为什么是最近不是最远?根节点一般为最远,第一次出现的值处于两个给定节点值之间的节点为最近)

2023-07-01 17:21:57 1371

原创 算法刷题Day 25 组合总和III+电话号码的字母组合

【代码】算法刷题Day 25 组合总和III+电话号码的字母组合。

2023-07-01 09:38:57 1227

原创 算法刷题Day 24 回溯算法理论基础+组合

回溯的剪枝是面试有可能被问到的点。

2023-06-30 09:40:01 1341

原创 算法刷题Day 21 二叉搜索树的最小绝对差+二叉搜索树中的众数+二叉树的最近公共祖先

偷偷看了一点提示,应该是用后序遍历,先处理子树,再到根节点,如果两棵子树返回包含两个目标节点的提示,该节点就是公共祖先节点。既然是二叉搜索树,中序遍历就是有序的。有序的话,我们就有希望在线性时间内完成找众数的操作(因为相同的数字都扎堆连在一起)一下子就想到的方法:遍历一遍二叉搜索树,把各个节点的值存进哈希表里(节点值——键,出现频率——值),再遍历哈希表找众数。上面的代码是简化后的版本,隐藏了很多思考的细节,下面贴一下我按照自己的思路写的第一个版本。递归中保存前一个节点的指针的方法,需要再学习,巩固一下。

2023-06-28 08:43:47 1355

原创 算法刷题Day 20 最大二叉树+合并二叉树+二叉搜索树中的搜索+验证二叉搜索树

【代码】算法刷题Day 20 最大二叉树+合并二叉树+二叉搜索树中的搜索+验证二叉搜索树。

2023-06-26 23:17:31 1530

原创 算法刷题Day18 找树左下角的值+路径总和+从中序与后序遍历构造二叉树

一眼层序遍历。

2023-06-24 10:30:05 1427

原创 算法刷题Day 17 平衡二叉树+二叉树的所有路径+左叶子之和

处理一个节点时,要判断它是否是左节点(需要父节点,可以通过函数传递),同时还要判断是否是叶子节点(需要节点本身)计算左右两棵子树的高度,如果有一个高度是-1(有一棵子树不平衡),直接返回-1,否则计算高度差,判断是否不平衡。的方法,每次处理一个节点之前要把它push进table里,处理完之后又要把它pop出来。

2023-06-23 09:12:48 1577

原创 算法刷题Day 16 二叉树的最大深度+N叉树的最大深度+二叉树的最小深度+完全二叉树的节点个数

优化后也是递归的思想,判断当前树是否为满二叉树,如果是,直接使用公式计算节点个数,否则,递归地计算左右子树的节点个数。先计算左右两棵子树的节点数,再加和,用后序遍历的方法。完全二叉树优化方法没自己想出来,得多复习几遍。使用层序的方法,相对比较好理解。跟二叉树的迭代差不多意思。迭代法用层序遍历来处理。

2023-06-22 10:50:13 1830

原创 算法刷题Day 15 二叉树的层序遍历+翻转二叉树+对称二叉树

层序遍历二叉树需要借助到队列。

2023-06-21 11:00:27 1705

空空如也

空空如也

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

TA关注的人

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