代码随想录算法训练营
文章平均质量分 82
Intro_Nitro
“喜欢待在低处,经常被人低估。”
展开
-
代码随想录算法训练营第60天|84.柱状图中最大的矩形
题目描述:给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。原创 2024-05-01 15:40:25 · 234 阅读 · 0 评论 -
代码随想录算法训练营第59天|503.下一个更大元素II、42. 接雨水
题目描述:给定一个循环数组nums的下一个元素是nums[0]),返回 nums中每个元素的。数字x的是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出-1。原创 2024-05-01 14:37:53 · 931 阅读 · 0 评论 -
代码随想录算法训练营第58天|739. 每日温度、496.下一个更大元素 I
题目描述:给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。原创 2024-04-27 15:06:25 · 453 阅读 · 0 评论 -
代码随想录算法训练营第57天|647. 回文子串、516.最长回文子序列
题目描述:给你一个字符串s,请你统计并返回这个字符串中的数目。是正着读和倒过来读一样的字符串。是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。原创 2024-04-25 21:58:25 · 629 阅读 · 0 评论 -
代码随想录算法训练营第56天|583. 两个字符串的删除操作、72. 编辑距离
题目描述:给定两个单词word1和word2,返回使得word1和word2**。可以删除任意一个字符串中的一个字符。原创 2024-04-22 22:10:47 · 501 阅读 · 0 评论 -
代码随想录算法训练营第55天|392.判断子序列、115.不同的子序列
题目描述:给定字符串和,判断是否为的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。原创 2024-04-22 21:04:58 · 476 阅读 · 3 评论 -
代码随想录算法训练营第53天|1143.最长公共子序列、1035.不相交的线、53. 最大子序和
题目描述:给定两个字符串text1和text2,返回这两个字符串的最长的长度。如果不存在,返回0。一个字符串的**是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。"ace""abcde""aec""abcde"两个字符串的是这两个字符串所共同拥有的子序列。原创 2024-04-20 14:59:08 · 570 阅读 · 0 评论 -
代码随想录算法训练营第52天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
题目描述:给你一个整数数组nums,找到其中最长严格递增子序列的长度。是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组的子序列。原创 2024-04-17 14:30:14 · 816 阅读 · 0 评论 -
代码随想录算法训练营第51天|309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
题目描述:给定一个整数数组prices,其中第prices[i]表示第 i天的股票价格。设计一个算法计算出最大利润。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。原创 2024-04-15 21:37:52 · 888 阅读 · 0 评论 -
代码随想录算法训练营第50天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV
题目描述:给定一个数组,它的第 **i个元素是一支给定的股票在第i**天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成交易。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。原创 2024-04-15 19:44:22 · 642 阅读 · 0 评论 -
代码随想录算法训练营第49天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
题目描述:给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择买入这只股票,并选择在卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。原创 2024-04-09 16:53:58 · 490 阅读 · 0 评论 -
代码随想录算法训练营第48天|198.打家劫舍、213.打家劫舍II、337.打家劫舍 III
题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。原创 2024-04-08 15:42:49 · 1638 阅读 · 0 评论 -
代码随想录算法训练营第46天|139.单词拆分、多重背包问题
题目描述:给你一个字符串s和一个字符串列表wordDict作为字典。如果可以利用字典中出现的一个或多个单词拼接出s则返回true。**注意:**不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。原创 2024-04-08 13:17:21 · 452 阅读 · 0 评论 -
代码随想录算法训练营第45天| 爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数
题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬至多m (1 <= m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。原创 2024-04-07 20:41:42 · 394 阅读 · 0 评论 -
代码随想录算法训练营第44天| 完全背包问题、518.零钱兑换II、377. 组合总和 Ⅳ
题目描述:有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。。原创 2024-04-06 16:58:14 · 421 阅读 · 0 评论 -
代码随想录算法训练营第43天| 1049.最后一块石头的重量II、494.目标和、474.零和一
本题其实就是尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,**这样就化解成01背包问题了。**这就和416. 分割等和子集 (opens new window)非常像了。本题物品的重量为stones[i],物品的价值也为stones[i]。对应着01背包里的物品重量weight[i]和物品价值value[i]。再重复一下dp五部曲的前两部dp[j]表示容量(这里说容量更形象,其实就是重量)为j的背包,最多可以背最大重量为dp[j]。01背包的递推公式为:dp[j] = max(dp[j], dp[j原创 2024-04-05 22:45:02 · 721 阅读 · 0 评论 -
代码随想录算法训练营第42天| 背包问题、416. 分割等和子集
题目描述:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。原创 2024-04-05 15:06:41 · 767 阅读 · 0 评论 -
代码随想录算法训练营第41天| 343. 整数拆分、96.不同的二叉搜索树
题目描述:给定一个正整数n,将其拆分为k个的和(k >= 2),并使这些整数的乘积最大化。返回你可以获得的最大乘积。原创 2024-04-01 17:18:58 · 334 阅读 · 0 评论 -
代码随想录算法训练营第39天| 62.不同路径、63. 不同路径 II
题目描述:一个机器人位于一个m x n**网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?原创 2024-03-31 16:27:14 · 473 阅读 · 0 评论 -
代码随想录算法训练营第38天| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
(通常用F(n)表示)形成的序列称为。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。给定n,请计算F(n)。原创 2024-03-30 18:18:30 · 671 阅读 · 0 评论 -
代码随想录算法训练营第37天| 738.单调递增的数字、968.监控二叉树
题目描述:当且仅当每个相邻位数上的数字x和y满足x原创 2024-03-30 13:23:01 · 485 阅读 · 0 评论 -
代码随想录算法训练营第36天| 435. 无重叠区间、763.划分字母区间、56. 合并区间
题目描述:给定一个区间的集合intervals,其中。返回需要移除区间的最小数量,使剩余区间互不重叠。原创 2024-03-29 20:31:32 · 658 阅读 · 0 评论 -
代码随想录算法训练营第35天| 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球
回归本题,整个插入过程如下:排序完的people: [[7,0], [7,1], [6,1], [5,0], [5,2],[4,4]]原创 2024-03-29 16:48:10 · 945 阅读 · 0 评论 -
代码随想录算法训练营第34天| 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
题目描述:给你一个整数数组nums和一个整数kinums[i]nums[i]重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数组。原创 2024-03-29 12:53:00 · 1649 阅读 · 0 评论 -
代码随想录算法训练营第32天| 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II
主要思想就是最终利润是可以分解到,假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。此时就是把利润分解为每天为单位的维度,而不是从 0 天到第 3 天整体去考虑!那么根据 prices 可以得到每天的利润序列:(prices[i] - prices[i - 1])…(prices[1] - prices[0])原创 2024-03-27 16:23:37 · 581 阅读 · 0 评论 -
代码随想录算法训练营第31天| 455.分发饼干、376. 摆动序列、53. 最大子序和
题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。原创 2024-03-24 20:31:07 · 759 阅读 · 0 评论 -
代码随想录算法训练营第31天| 455.分发饼干、376. 摆动序列、53. 最大子序和
题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。原创 2024-03-22 19:32:03 · 776 阅读 · 0 评论 -
代码随想录算法训练营第30天| 51. N皇后、37. 解数独
题目描述:按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回所有不同的 **n的解决方案。每一种解法包含一个不同的的棋子放置方案,该方案中'Q'和'.'分别代表了皇后和空位。原创 2024-03-22 10:17:16 · 413 阅读 · 0 评论 -
代码随想录算法训练营第29天| 491.递增子序列、46.全排列、47.全排列 II
在90.子集II中我们是通过排序,再加一个标记数组来达到去重的目的。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。所以不能使用之前的去重逻辑!在图中可以看出,同一父节点下的同层上使用过的元素就不能再使用了,本题中通过使用set来记录同一层中已经使用过的元素。这也是需要注意的点, 是记录本层元素是否重复使用,新的一层uset都会重新定义(清空),所以要知道uset只负责本层!我以[1,2,3]为例,抽象成树形结构如下首先排列是有序的,也就是说 [1,2] 和 [2,1] 是两个原创 2024-03-20 13:30:45 · 395 阅读 · 0 评论 -
代码随想录算法训练营第28天| 93.复原IP地址、78.子集、90.子集II
正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。给定一个只包含数字的字符串s,用以表示一个 IP 地址,返回所有可能的,这些地址可以通过在s中插入'.'来形成。你重新排序或删除s中的任何数字。你可以按顺序返回答案。原创 2024-03-19 13:25:35 · 770 阅读 · 0 评论 -
代码随想录算法训练营第27天| 39. 组合总和、40.组合总和II、131.分割回文串
题目描述:给你一个的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的 所有 **,并以列表形式返回。你可以按返回这些组合。candidates中的数字可以。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。原创 2024-03-18 22:40:48 · 667 阅读 · 0 评论 -
代码随想录算法训练营第25天| 216.组合总和III、17.电话号码的字母组合
题目描述:找出所有相加之和为n**的k返回所有可能的有效组合的列表。该列表不能包含相同的组合两次,组合可以以任何顺序返回。原创 2024-03-18 17:25:56 · 428 阅读 · 0 评论 -
代码随想录算法训练营第24天| 回溯算法理论基础、77. 组合
回溯算法一般可以抽象为树形结构,我们在二叉树递归时需要终止条件,在回溯时也需要。和二叉树类似,一般来说搜到叶子节点了,也就找到了满足条件的一条答案,把这个答案存放起来,并结束本层递归。来举一个例子,n = 4,k = 4的话,那么第一层for循环的时候,从元素2开始的遍历都没有意义了。回溯算法需要的参数不容易一次性确定,一般是先写逻辑后确定参数。回溯法一般是在集合中递归搜索,集合的大小构成了树的宽度,递归的深度构成的树的深度。我们说过,回溯法虽然是暴力搜索,但也有时候可以有点剪枝优化一下的。原创 2024-03-18 11:50:55 · 809 阅读 · 0 评论 -
代码随想录算法训练营第23天| 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
题目描述:给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在中。修剪树改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。原创 2024-03-17 22:26:51 · 592 阅读 · 0 评论 -
代码随想录算法训练营第22天| 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
题目描述:给你一个二叉搜索树的根节点root,返回。差值是一个正数,其数值等于两值之差的绝对值。原创 2024-03-17 17:12:08 · 836 阅读 · 0 评论 -
代码随想录算法训练营第21天| 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
题目描述:给你一个二叉搜索树的根节点root,返回。差值是一个正数,其数值等于两值之差的绝对值。原创 2024-03-17 11:16:22 · 890 阅读 · 0 评论 -
代码随想录算法训练营第20天| 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
题目描述:给定一个不重复的整数数组nums。可以用下面的算法从numsnums返回 nums构建的。原创 2024-03-11 14:59:33 · 654 阅读 · 0 评论 -
代码随想录算法训练营第17天| 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和
题目描述:给定一个二叉树,判断它是否是平衡二叉树。原创 2024-03-10 11:37:49 · 1391 阅读 · 0 评论 -
代码随想录算法训练营第16天| 104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数
题目描述:给定一个二叉树root,返回其最大深度。二叉树的是指从根节点到最远叶子节点的最长路径上的节点数。原创 2024-03-07 12:39:24 · 352 阅读 · 0 评论 -
代码随想录算法训练营第15天| 102.二叉树的层序遍历、226.翻转二叉树、101. 对称二叉树
题目描述:给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。原创 2024-03-06 22:29:41 · 520 阅读 · 0 评论