自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 问答 (1)
  • 收藏
  • 关注

原创 代码随想录训练营完结总结

参加代码随想录训练营的原因: 1.有一群人一起刷题和自己一个人刷题的感觉是不一样的,每天都有录友一起交流今天的刷题心得和刷题问题,感觉自己不是一个人在奋斗,像是回到了考研那段时间在图书馆学习的场景。 2.自我控制能力不太好,自己一个人闷头刷有点三天打鱼两天晒网,有在这条路走在前面的前辈每天布置刷题任务,还答疑解惑,这对学习过程是加分减负担的。 3.没来刷之前看题库有时就像看就业未来一样迷茫,而代码随想录训练营可以让我成体系的刷题,由浅入深的去学习和理解知

2023-07-24 10:10:42 308

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

单调栈的顺序很重要,既然是求某一列左右两边第一个小于它的元素,那么从栈底到栈顶应该是从小到大的顺序,比栈顶大或者等于的元素(其中相等的元素只要最右边的元素)直接压入栈中,当找到比栈顶小的元素说明找到矩形了,可以开始计算面积了。首先要知道如何计算该最大面积,以某一列为例,找到其左边第一个小于它的列,找到其右边第一个小于它的列,以该列为高度,左右两列中间夹着的列数为宽度,这就是该列能画出的最大矩形了。求在该柱状图中,能够勾勒出来的矩形的最大面积。最大的矩形为图中红色区域,面积为 10。

2023-07-22 15:02:28 108

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

当前元素更大,则说明找到凹槽可以接雨水,记录栈顶元素后将其弹出,接雨水的宽度为当前元素减去此时的栈顶元素再减1,高度则当前元素与当前栈顶元素中最小值 减去 刚才记录的原栈顶元素。解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输入:height = [4,2,0,3,2,5]输入: nums = [1,2,3,4,3]

2023-07-21 14:43:25 115

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

对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素。不存在下一个更大元素,所以答案是 -1。输入: temperatures = [73,74,75,71,69,72,76,73]输入:nums1 = [4,1,2], nums2 = [1,3,4,2].输入:nums1 = [2,4], nums2 = [1,2,3,4].输出: [1,1,4,2,1,1,0,0]

2023-07-20 11:25:15 99

原创 代码随想录算法训练营第五十七天|647. 回文子串、516.最长回文子序列、动态规划最强总结篇

代码随想录 (programmercarl.com)

2023-07-19 13:17:39 251

原创 代码随想录算法训练营第五十六天|583. 两个字符串的删除操作、72. 编辑距离、动态规划之编辑距离总结篇

public:i++) {j++) {else {代码随想录 (programmercarl.com)代码随想录 (programmercarl.com)

2023-07-18 13:35:02 69

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

public:i++) {j++) {代码随想录 (programmercarl.com)public:i++) {j++) {} else {代码随想录 (programmercarl.com)

2023-07-17 11:09:57 152

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

public:i++) {j++) {} else {代码随想录 (programmercarl.com)public:i++) {// 状态转移公式// result 保存dp[i]的最大值代码随想录 (programmercarl.com)

2023-07-16 21:15:41 81

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

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]输入:nums = [10,9,2,5,3,7,101,18]

2023-07-14 12:33:50 150

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

你可以无限次地完成交易,但是你每笔交易都需要付手续费。要点:和之前可以无限次买股票的题是一样的,只是多了一个手续费用,在递推公式的时候考虑上手续费即可。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。输入:prices = [1, 3, 2, 8, 4, 9], fee = 2。解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]输入:prices = [1,3,7,5,10,3], fee = 3。输入: prices = [1,2,3,0,2]

2023-07-13 15:32:16 58

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

【代码】代码随想录算法训练营第五十天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV。

2023-07-12 16:10:44 218

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

【代码】代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II。

2023-07-11 17:53:20 63

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

【代码】代码随想录算法训练营第四十八天|198.打家劫舍、213.打家劫舍II、337.打家劫舍 III。

2023-07-10 17:30:38 26

原创 代码随想录算法训练营第四十六天|139.单词拆分、动态规划:关于多重背包,你该了解这些、背包问题总结

代码随想录 (programmercarl.com)

2023-07-10 16:39:59 317

原创 代码随想录算法训练营第四十五天|70. 爬楼梯、322. 零钱兑换、279.完全平方数

【代码】代码随想录算法训练营第四十五天|70. 爬楼梯、322. 零钱兑换、279.完全平方数。

2023-07-07 10:40:57 62

原创 代码随想录算法训练营第四十四天|完全背包、518.零钱兑换II、377. 组合总和 Ⅳ

【代码】代码随想录算法训练营第四十四天|完全背包、518.零钱兑换II、377. 组合总和 Ⅳ。

2023-07-06 20:24:29 70

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

1049. 最后一块石头的重量 II - 力扣(LeetCode)public:i++) { // 遍历物品j--) { // 遍历背包代码随想录 (programmercarl.com)

2023-07-05 10:27:38 27

原创 代码随想录算法训练营第四十二天|动态规划:01背包理论基础、动态规划:01背包理论基础(滚动数组)、416. 分割等和子集

【代码】代码随想录算法训练营第四十二天|动态规划:01背包理论基础、动态规划:01背包理论基础(滚动数组)、416. 分割等和子集。

2023-07-04 23:55:16 56

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

【代码】代码随想录算法训练营第四十一天|343. 整数拆分、96.不同的二叉搜索树。

2023-07-03 20:04:17 57

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

【代码】代码随想录算法训练营第三十九天|62.不同路径、63. 不同路径 II。

2023-07-01 09:06:02 27

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

【代码】代码随想录算法训练营第三十八天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。

2023-06-30 09:52:58 33

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

代码随想录 (programmercarl.com)

2023-06-29 16:57:25 26

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

【代码】代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间。

2023-06-29 15:46:23 18

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

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

2023-06-27 23:14:32 26

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

【代码】代码随想录算法训练营第三十四天|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果。

2023-06-26 11:09:09 23

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

【代码】代码随想录算法训练营第三十二天|122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II。

2023-06-25 18:05:48 24

原创 代码随想录算法训练营第三十一天|贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和

【代码】代码随想录算法训练营第三十一天|贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和。

2023-06-25 17:27:46 27

原创 代码随想录算法训练营第三十天|回溯法理论基础、332.重新安排行程、51. N皇后、37. 解数独

【代码】代码随想录算法训练营第三十天|回溯法理论基础、332.重新安排行程、51. N皇后、37. 解数独。

2023-06-25 10:46:27 39

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

491. 递增子序列 - 力扣(LeetCode)给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。示例 1:输入:nums = [4,6,7,7]输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]示例 2:输入:nums = [4,4,3,2,1]输出:[[4,4]]

2023-06-22 10:47:29 45

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

93. 复原 IP 地址 - 力扣(LeetCode)有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "[email protected]" 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 '

2023-06-21 13:37:45 26

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

39. 组合总和 - 力扣(LeetCode)给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,

2023-06-19 16:47:37 26

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

216. 组合总和 III - 力扣(LeetCode)找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]解释:1 + 2 + 4 = 7没有其他符合的组合了。示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]解释:1 + 2 +

2023-06-19 10:32:49 21

原创 代码随想录算法训练营第二十四天|回溯算法理论基础、第77题. 组合

代码随想录 (programmercarl.com) 1、回溯的本质也是暴力枚举,只是有的题目暴力枚举用for循环不行。 2、回溯函数也有三部曲,设置参数和返回值,终止条件,单层处理逻辑。77. 组合 - 力扣(LeetCode)给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3],

2023-06-17 14:56:10 34

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

669. 修剪二叉搜索树 - 力扣(LeetCode)给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。示例 1:输入:root = [1,0,2], low = 1, high = 2输

2023-06-15 11:21:17 24

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

235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode)给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p

2023-06-14 14:38:24 27

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

530. 二叉搜索树的最小绝对差 - 力扣(LeetCode)给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。示例 1:输入:root = [4,2,6,1,3]输出:1示例 2:输入:root = [1,0,48,null,null,12,49]输出:1 提示:树中节点的数目范围是 [2, 104]0 <= Node.val <= 105总结:二叉搜索树用中序遍历就是一个有序数组,递归思路如下。 ①

2023-06-13 18:12:42 21

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

654. 最大二叉树 - 力扣(LeetCode)给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 nums 构建的 最大二叉树 。示例 1:输入:nums = [3,2,1,6,0,5]输出:[6,3,5,null,2,0,null,null,1]解释:递归调用如下所示:- [3,2,1,6,0

2023-06-13 16:13:30 24

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

513. 找树左下角的值 - 力扣(LeetCode)给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。示例 1:输入: root = [2,1,3]输出: 1示例 2:输入: [1,2,3,4,null,5,6,null,null,7]输出: 7 提示:二叉树的节点个数的范围是 [1,104]-231 <= Node.val <= 231 - 1 总结:该题采用递归法稍显麻烦一点,迭代法中的层序遍历反而更简单,下面给出递归法的思路。

2023-06-12 22:53:47 27

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

110. 平衡二叉树 - 力扣(LeetCode)给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true 提示:树中的节点数在范围 [0, 5000] 内-104 <=

2023-06-11 22:44:45 22

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

104. 二叉树的最大深度 - 力扣(LeetCode)给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。总结:该题递归思想思路为: ①递归的参数为根节点,递归返回值类型为int,返回深度depth。 ②递归的终止条件是节点为空,返回0

2023-06-09 17:45:11 22

空空如也

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

TA关注的人

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