自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营一刷总结

因为,刷题的套路总共也就那么几个,动态规划五部曲,回溯三部曲,双指针等,需要记忆的如KMP算法,二叉树的迭代法,滑动窗口的模板等。然而,面对即将到来的秋招(我菜鸡,并没有去申请实习),光是刷题是不够的,因此在接下来的2个月内,学习建立高性能服务器等相关的C++项目(虽然烂大街),尽可能的为秋招做好充足的准备把。实际意义上,这次并不是一刷,在过去的一年多的时间里,我也多多少少的刷过两次左右,但在过去的时间里,并没有能够每天通过博客来打卡,分享自己的想法。

2023-05-16 21:06:10 178

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

题目描述:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。

2023-05-13 21:16:11 189

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

题目描述:给定一个循环数组 nums (nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素。数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。解题思路:题目中明确表示出了需要循环搜索,因此其循环的限制条件不应该是nums.size(),而是应该在这个基础上乘*2。

2023-05-13 21:03:02 172

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

题目描述:给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

2023-05-11 21:55:25 165

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

题目描述:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。bool。

2023-05-10 21:40:36 456

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

题目描述:给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。每步 可以删除任意一个字符串中的一个字符。int。

2023-05-09 10:44:06 81

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

题目描述:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。int。

2023-05-08 19:40:17 71

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

题目描述:给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。int。

2023-05-07 22:13:00 360

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

题目描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

2023-05-06 23:36:14 489

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

题目描述:给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。int。

2023-05-04 15:46:33 37

原创 代码随想录算法训练营(总结)|动态规划总结篇

理解:所谓的01背包问题,其关键在于物品只能放入1次,不能够重复利用,因此称呼为01背包问题。与完全背包的区别在于,完全背包问题中,物品能够无限次的放入。理解:完全背包与01背包的区别在于,完全背包中的物品能够被无限次放入。这里就存在疑惑了,为啥只能先物品后背包,背包又为啥只能是倒序。在上面的递推关系式,仅仅只包含了一种情况,其实题目是多样的。其实整体来说,总共也就加粗的两种类型(目前只碰到)

2023-05-03 22:15:41 1082

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

题目描述:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。int。

2023-05-03 20:52:40 60

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

题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。int。

2023-05-03 16:16:53 60

原创 代码随想录算法训练营第48天|打家劫舍系列● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

2023-05-03 15:57:10 817 1

原创 代码随想录算法训练营第46天|● 139.单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。同样采用动态规划五部曲来进行解答。

2023-05-03 14:41:09 44

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

题目链接:题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

2023-05-02 20:57:20 435

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

题目描述:给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0。假设每一种面额的硬币有无限个。题目数据保证结果符合 32 位带符号整数。

2023-04-27 20:50:19 83

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

题目描述:有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块 石头。返回此石头 最小的可能重量。如果没有石头剩下,就返回 0。

2023-04-26 22:07:50 149

原创 代码随想录算法训练营第42天|416. 分割等和子集

给你一个 只包含正整数 的 非空 数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。本题是典型的01背包问题,物品是数字,背包容量是所有数字总和的一半。

2023-04-25 21:21:00 43

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

题目描述:给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。返回 你可以获得的最大乘积。

2023-04-24 15:39:05 39

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

题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?解题思路:按照动态规划五部曲进行解答就行int。

2023-04-22 22:08:14 258

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

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。F(n) = F(n - 1) + F(n - 2),其中 n > 1。每次你可以爬 1 或 2 个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。需要 n 阶你才能到达楼顶。给定 n ,请计算 F(n)。

2023-04-21 15:40:45 59

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

题目描述:当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增。

2023-04-21 11:21:01 35

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

题目描述:给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi]。返回 需要移除区间的最小数量,使剩余区间互不重叠。

2023-04-20 16:07:01 35

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

题目描述:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false。解题思路:直接模拟就行。

2023-04-18 21:19:48 42

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

题目描述:给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:选择某个下标 i 并将 nums[i] 替换为 -nums[i]。重复这个过程恰好 k 次。可以多次选择同一个下标 i。以这种方式修改数组后,返回数组 可能的最大和。

2023-04-17 21:45:02 29

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

题目描述:给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 最大 利润。

2023-04-16 14:25:43 30

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

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

2023-04-16 13:38:23 45

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

(困难)题目描述:给你一份航线列表 tickets ,其中 tickets[i] = [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前。假定所有机票至少存在一种合理的行程。

2023-04-13 22:55:33 30

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

题目描述:给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。

2023-04-12 22:58:17 41

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

题目描述:相关企业有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。

2023-04-11 23:22:16 70

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

题目描述:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。

2023-04-10 22:20:31 17

原创 代码随想录算法训练营第26天|二叉树的总结与思考

满二叉树就是每一层的节点都放满了完全二叉树除了最后一层节点数都满,且最后一层的节点为左排列。前序遍历的顺序是,中左右,即按照树的结构,先遍历二叉树的根节点,然后依次遍历左子树和右子树结果为:ABDECF代码2. 中序遍历中序遍历的顺序是,左中右,即按照树的结构,先遍历二叉树的左子树,然后遍历根节点,最后遍历右子树结果为:DBEAFC代码:3. 后序遍历后序遍历的顺序是,左右中,即按照树的结构,先遍历二叉树的左子树,然后依次遍历右子树,最后遍历根节点结果为:DEBFCA4. 层序遍历层序遍历

2023-04-09 18:57:25 51

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

解题思路:跟昨天的组合差不多,就是多加了个条件而已。

2023-04-08 21:04:28 23

原创 代码随想录算法训练营第24天|77.组合

【代码】代码随想录算法训练营第24天|77.组合。

2023-04-07 16:45:45 26

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

二叉树今天完结了,周末准备新开一章,重新理一下二叉树和二叉搜索树的相关知识点。

2023-04-06 22:37:26 27

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

题目描述:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。

2023-04-05 21:45:48 66

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

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

2023-04-05 16:07:24 34

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

解题思路:这题相对于前天做的通过前序和中序,或者中序和后序构建二叉树要稍微简单一点。需要注意的是,做递归的时候,常常忽略一些细节。

2023-04-04 22:08:06 27

原创 代码随想录算法训练营第18天

递归法同样的,我们需要知道最后一层在哪里,然后找到第一个节点。因此,我们采用前序遍历。

2023-04-02 19:23:16 37

空空如也

空空如也

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

TA关注的人

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