自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

【代码】代码随想录算法训练营 Day 60 | 84.柱状图中最大的矩形。

2023-06-03 23:04:26 325 1

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

跟((20230602160959-y9z3qlr ‘42.接雨水’))思路一样,不过因为数组收尾相连,循环数是数组长度的两倍,里面做下下标处理就可以了。

2023-06-03 23:02:02 330

原创 代码随想录算法训练营 Day 58 | 739.每日温度,496.下一个更大元素Ⅰ

【代码】代码随想录算法训练营 Day 58 | 739.每日温度,496.下一个更大元素Ⅰ。

2023-06-03 00:04:27 198

原创 代码随想录算法训练营 Day 57 | 647.回文子串,516.最长回文子序列,动态规划总结篇

代码随想录-动态规划总结篇。

2023-06-02 23:00:04 186

原创 代码随想录算法训练营 Day 56 | 583.两个字符串的删除操作,72.编辑距离,编辑距离总结

代码随想录-编辑距离总结。

2023-05-30 22:31:07 144

原创 代码随想录算法训练营 Day 55 | 392.判断子序列,115.不同的子序列

【代码】代码随想录算法训练营 Day 54 | 392.判断子序列,115.不同的子序列。

2023-05-29 21:48:11 144

原创 代码随想录算法训练营 Day 53 | 1143.最长公共子序列,1035.不相交的线,53.最大子序和-动态规划

还是推荐使用贪心算法。

2023-05-27 22:31:30 126

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

j其实就是遍历0到i-1,那么是从前到后,还是从后到前遍历都无所谓,只要吧 0 到 i-1 的元素都遍历了就行了。所以:if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);注意这里不是要dp[i] 与 dp[j] + 1进行比较,而是我们要取dp[j] + 1的最大值。dp[i] 是有0到i-1各个位置的最长递增子序列 推导而来,那么遍历i一定是从前向后遍历。位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 + 1 的最大值。

2023-05-27 22:29:00 590

原创 代码随想录算法训练营 Day 51 | 309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费,股票问题总结

代码随想录-股票问题总结。

2023-05-25 16:17:49 139

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

【代码】代码随想录算法训练营 Day 50 | 123.买卖股票的最佳时机III,188.买卖股票的最佳时机IV。

2023-05-25 16:15:53 73

原创 代码随想录算法训练营 Day 49 | 121.买卖股票的最佳时机,122.买卖股票的最佳时机 II

如果第 i 天持有股票即 dp[i][0], 那么可以由两个状态推出来。如果第 i 天不持有股票即 dp[i][1], 也可以由两个状态推出来。dp 数组如何初始化。

2023-05-23 22:00:21 647

原创 代码随想录算法训练营 Day 48 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍III

【代码】代码随想录算法训练营 Day 48 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍III。

2023-05-22 18:14:35 80

原创 代码随想录算法训练营 Day 46 | 139.单词拆分,关于多重背包,你该了解这些!,背包问题总结篇!

代码随想录-背包问题总结篇!​​。

2023-05-20 11:53:08 445

原创 代码随想录算法训练营 Day 45 | 70.爬楼梯(进阶),322.零钱兑换,279.完全平方数

讲解链接:代码随想录-70.爬楼梯(进阶)假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。改为:一步一个台阶,两个台阶,三个台阶,.......,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢?322.零钱兑换讲解链接:代码随想录-322.零钱兑换279.完

2023-05-19 22:47:43 277

原创 代码随想录算法训练营 Day 44 | 完全背包,518.零钱兑换 II,377.组合总和 Ⅳ

有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。同样leetcode上没有纯完全背包问题,都是需要完全背包的各种应用,需要转化成完全背包问题,所以我这里还是以纯完全背包问题进行讲解理论和原理。完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。问背包能背的物品最大价值是多少?每件商品都有无限个!

2023-05-19 22:38:24 70

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

代码随想录-1049.最后一块石头的重量 II确定 dp 数组以及下标的含义:dp[j]表示容量(这里说容量更形象,其实就是重量)为 j 的背包,最多可以背最大重量为 dp[j]。石头的重量是 stones[i],石头的价值也是 stones[i] ,可以 “最多可以装的价值为 dp[j]” == “最多可以背的重量为 dp[j]”确定递推公式:dp[j] = max(dp[j], dp[j - stones[i]] + stones[i]);

2023-05-18 19:02:05 668

原创 代码随想录算法训练营 Day 42 | 01背包问题,你该了解这些!,01背包问题,你该了解这些! 滚动数组,416.分割等和子集

【代码】代码随想录算法训练营 Day 42 | 01背包问题,你该了解这些!,01背包问题,你该了解这些!滚动数组,416.分割等和子集。

2023-05-17 20:54:07 78

原创 代码随想录算法训练营 Day 41 | 343.整数拆分,96.不同的二叉搜索树

多看,多记。。

2023-05-15 15:59:11 68

原创 代码随想录算法训练营 Day 39| 62.不同路径,63.不同路径 II

在当前节点的时候,需要判断上一节点是否有障碍物,有的话初始化就是 0。需要注意开头、终点或中间出现死路的情况。

2023-05-13 12:10:52 232

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

今天的都是简单题哎。

2023-05-13 00:57:52 99

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

代码随想录-贪心算法总结。

2023-05-12 10:15:59 95

原创 代码随想录算法训练营 Day 30 | 435.无重叠区间,763.划分字母区间,56.合并区间

首先根据子数组的左边数字排序,然后从 1 开始循环变遍历,如果当前做边界小于前一个数组的右边界,说明这两个数组有重叠,移除数量加 1。得到数组后,我们创建结果集、一个左边界和右边界,再次遍历字符串,那当前的遍历的字母到之前创建数组中保存的最远下标,更新右边界为最大值,如果遍历到了最大值,就说明可以分割一次了。思路:使用二维集合存储子字符串,主要利用集合的 contains 来判断子集合是否存在当前轮询到的字符串,如果存在则把这个子集合后面的集合全部添加进来并删除,如果不存在就新建一个子数组来保存。

2023-05-11 22:57:29 39

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

好难。

2023-05-10 23:02:42 74

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

讲解链接:代码随想录-1005.K次取反后最大化的数组和给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后,返回数组可能的最大和。示例 1:示例 2:示例 3:提示:首先对数组排序,然后用k把数组中的负数变为正数,之后再看K是否用完,没用完就再排序一次,对最小数字进行操作。134.加油站讲解链接:代码随想录-134.加油站在一条环路上有 N 个加油站,其

2023-05-08 21:14:02 38

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

我的建议:牢记题目。。

2023-05-06 21:13:53 64

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

代码随想录-回溯算法总结。

2023-05-05 22:49:32 53

原创 代码随想录算法训练营 Day 31 | 455.分发饼干,376.摆动序列,53.最大子序和

这题目不看一遍题解真做不出来。。

2023-05-05 22:46:31 105

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

一般来说:组合问题和排列问题是在树形结构的叶子节点上收集结果,而子集问题就是取树上所有节点的结果。

2023-05-04 21:32:27 57

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

主要是单层递归的时候多判断一下子地址是否符合条件。

2023-05-04 21:28:52 45

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

看图好理解,重点在每次遍历后判断一下分割的子字符是否是回文字符串,是的话就添加到路径组合中,因为同一个元素不能重复使用,所以在递归的时候需要 +1。所以,这道题首先也要对参数进行排序,然后在处理路径的时候需要判断,如果当前元素跟前一个元素相同,那么就跳过,否则会在出现相同的组合。这道题因为里面的数字可以重复使用,所以在下一层递归的时候,i 不用 +1。​candidates​​ 中的每个数字在每个组合中只能使用 一次。注意:解集不能包含重复的组合。

2023-05-03 23:33:32 48

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

【代码】代码随想录算法训练营 Day 25 | 216.组合总和III,17.电话号码的字母组合。

2023-04-30 22:40:09 100

原创 代码随想录算法训练营 Day 24 | 回溯算法理论基础,77.组合回溯算法理论基础

剪枝操作有点难理解,需要多练习。

2023-04-30 00:55:08 89

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

今天额外的轻松。代码随想录-二叉树总结篇。

2023-04-27 14:52:35 49

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

有点难哎。

2023-04-26 22:51:02 48

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

不知道这两天是状态不好还是基础不扎实,勉强可以想到方式,但是竟然没法实现,实现后很多bug,慢慢修改才通过,通过也是碰运气过的,没太大概念。

2023-04-25 22:18:14 53

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

搜索树有一个规律:中序遍历(左中右)的情况下,值是从小到大排列的。所以我们使用中序遍历,然后比较大小就好了,前一个节点的值如果大于当前遍历节点的值,就不是搜索二叉树,返回 false。我刚开始还想着自己创建一个节点然后大量判断去赋值,起始直接拿参数跟节点进行判断赋值就好了,减少大量判断。这道题虽然是中等,我还是感觉挺简单的,只要熟悉递归就好了。因为是构造树,一般用的是前序遍历。我一直没想出来,他不是简单的比较 节点大小,也没法通过寻找最大值跟跟节点比较。这个应该算递归入门题目,现在做完全没有压力了!

2023-04-24 22:23:56 47

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

我这里还有另一个思路,就是效率和空间会浪费,算是暴力破解吧。创建一个结果集Set,把所有根节点到叶子结点的路径和存在里面,最后判断集合中是否存在目标值即可。代码随想录中用到了全局变量,说实话,工作几年了,全局变量用起来还是比较慎重的,习惯上能不用就不用吧。所以我这里稍微该了一下,这道题注意一个点,最后一行最左侧的值,而不是最深一行左节点的值。代码可以做精简,我这里为了提现思考过程,代码有点冗余。最好看视频理解,我自己也是琢磨着写的。

2023-04-22 22:06:15 51

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

讲解链接:代码随想录-110.平衡二叉树这里求的是高度,所以使用后序遍历。节点获取左右子节点的最大高度,然后相减的差绝对值大于 1,就说明不是平衡二叉树了。解题代码:讲解链接:代码随想录-257.二叉树的所有路径使用前序遍历,解题代码:讲解链接:代码随想录-404.左叶子之和递归两种思路,父节点收集子节点判断返回前序遍历这里用的迭代方式前序遍历,思路和迭代法第一种一样,判断子节点是否是叶子结点,是的话就加上。层序遍历父节点判断总结

2023-04-22 15:35:58 36

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

【代码】代码随想录算法训练营 Day 16 | 104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数。

2023-04-20 22:47:11 40

原创 代码随想录算法训练营 Day 15 | 层序遍历,226.翻转二叉树,101.对称二叉树

唯一的想法就是多复习。。‍。

2023-04-19 23:21:44 64

空空如也

空空如也

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

TA关注的人

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