自定义博客皮肤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)
  • 收藏
  • 关注

原创 算法刷题|84.柱状图中最大的矩形

因为当前的遍历的位置i是第一个比当前栈顶元素小的,所有可以确定当前位置i之前的最大面积就是以栈顶元素为高,当前元素和栈顶元素的距离为宽的面积。题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。为什么高度是newHeight[mid]?

2023-05-04 14:11:09 81

原创 算法刷题|503.下一个更大元素Ⅱ、42.接雨水

题目:给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素。数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。

2023-05-04 11:16:06 75

原创 算法刷题|739.每日温度、496.下一个更大元素Ⅰ

什么是单调栈?简单的说就是单调栈就是我们维护一个栈,只是栈中的元素的顺序是有顺序,分为单调递增或者单调递减。

2023-04-30 18:20:52 77

原创 算法刷题|647.回文子串、516.最长回文子序列

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

2023-04-30 15:44:58 847

原创 算法刷题|583.两个字符串的删除操作、72.编辑距离

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

2023-04-29 23:41:15 950

原创 算法刷题|392.判断子序列、115.不同的子序列

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

2023-04-29 22:38:46 726

原创 算法刷题|1143.最长公共子序列、1035.不相交的线、53.最大子数组和

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

2023-04-27 22:47:08 378

原创 算法刷题|300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

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

2023-04-26 17:23:24 366

原创 算法刷题|309.最佳买卖股票含冷冻期、714.买卖股票的最佳时机含手续费

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

2023-04-25 22:12:19 41

原创 算法刷题|123.买卖股票的最佳时机Ⅲ、188.买卖股票的最佳时机Ⅳ

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

2023-04-25 15:47:01 58

原创 算法刷题|121.买卖股票的最佳时机、122.买卖股票的最佳时机Ⅱ

题目:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。不持有持有通过递归公式可以发现,当前第i天的是否持有股票只是和前一天有关系,所有我们可以使用两个变量来存储。

2023-04-25 10:34:39 374

原创 算法刷题|198.打家劫舍、213.打家劫舍Ⅱ、337.打家劫舍Ⅲ

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

2023-04-24 17:07:57 151

原创 算法刷题|139.单词拆分、多重背包

题目:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

2023-04-24 13:49:52 232

原创 算法刷题|70.爬楼梯(进阶)、322.零钱兑换、279.完全平方数

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

2023-04-23 23:14:44 430

原创 算法刷题|完全背包、518.零钱兑换Ⅱ、377.组合总和Ⅳ

完全背包和0-1背包的区别在于0-1背包的物品每次只能使用一次,但是完全背包就是每个物品可以无限次数使用这里的背包是从小到大遍历的,因为这样可以重复使用物品,之前的0-1背包从大到小的顺序遍历是为了不重复使用物品。

2023-04-23 21:26:38 387

原创 算法刷题|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果

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

2023-04-21 16:40:25 103

原创 算法刷题|1049.最后一个块石头的重量||、494.目标和、474.一和零

题目:有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x

2023-04-21 16:18:19 373

原创 算法刷题|0-1背包问题、416.分割等和子集

什么是0-1背包?有i个物品和一个容量为j的背包,每个物品有重量和价值两个属性;求容量为j的背包能装的物品的最大价值是多少。每个物品智能使用一次。

2023-04-19 14:24:06 60

原创 算法刷题|343.整数拆分、96.不同的二叉搜索树

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

2023-04-17 16:02:43 41

原创 算法刷题|62.不同路径、63.不同路径||

题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?

2023-04-12 21:53:14 309

原创 算法刷题|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

题目:斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(n) = F(n - 1) + F(n - 2),其中 n > 1给定 n ,请计算 F(n)。

2023-04-11 11:26:14 28

原创 算法刷题|738.单调递增的数字、968.监控二叉树

题目:当且仅当每个相邻位数上的数字 x 和 y 满足 x

2023-04-10 20:54:08 27

原创 算法刷题|435.无重叠区间、763.划分字母区间、56.合并区间

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

2023-04-10 17:32:57 27

原创 算法刷题|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

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

2023-04-10 14:52:49 24

原创 算法刷题|122.买卖股票的最佳时机||、55.跳跃游戏、45.跳跃游戏||

题目:给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 最大 利润。例如:prices=[7,1,5,3,6,4]所以3到0到区间上的收益最大值就是前一天买入后一天卖出的结果是正的累加,结果是负的就不要加了,因为最终的收益会变小。

2023-04-07 15:48:31 31

原创 算法刷题|455.分发饼干、376.摆动序列、53.最大子数组和

题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

2023-04-07 11:49:31 30

原创 算法刷题|332.重新安排行程、51.N皇后、37.解数独

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

2023-04-06 15:54:50 29

原创 算法刷题|491.递增子序列、46.全排列、47.全排列||

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

2023-03-30 22:40:57 50

原创 算法刷题|93.复原IP地址、78.子集、90.子集||

题目:有效 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-03-30 16:46:57 27

原创 算法刷题|39.组合总和、40.组合总和||、131.分割回文串

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

2023-03-28 23:04:04 25

原创 算法刷题|216.组合总和|||、17.电话号码的字母组合

题目:找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次返回 所有可能的有效组合的列表。该列表不能包含相同的组合两次,组合可以以任何顺序返回。剪枝。

2023-03-27 20:58:50 46

原创 算法刷题|77.组合问题

回溯常常伴随着递归,回溯操作都是在递归函数的下面进行操作的。所有的回溯问题都可以抽象成一个多叉树来解决。我们之前在对二叉树进行递归遍历的时候,其实就有回溯过程,只是我们没有处理(因为不需要),但是例如找二叉树的路径的题目就涉及到回溯了。解决回溯问题的思路:第一步:抽象成多叉树第二步:确定多叉树的宽度和深度第三步:确定递归函数的终止条件第四步:递归函数单层递归逻辑,包含回溯操作。

2023-03-24 13:34:14 33

原创 算法刷题|669.修剪二叉搜索树、108.将有序数组转换成二叉搜索树、538.把二叉搜索树转换为累加树

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

2023-03-23 23:18:01 31

原创 算法刷题|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

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

2023-03-23 21:49:23 39

原创 算法刷题|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236.二叉树的最近公共祖先

题目:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。上面的实现逻辑比较简单,这里就记录一下思路就行了。

2023-03-23 14:42:47 33

原创 算法刷题|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

题目:给定一个不重复的整数数组 nums。最大二叉树 可以用下面的算法从 nums 递归地构建:创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 nums 构建的 最大二叉树。

2023-03-21 17:09:48 27

原创 算法刷题|513.找树左下角的值、112.路径总和、113.路径总和||、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

题目:给定一个二叉树的 根节点 root,请找出该二叉树的节点的值。假设二叉树中至少有一个节点。

2023-03-21 11:06:00 34

原创 算法刷题|110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和

题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。

2023-03-19 22:38:34 31

原创 算法刷题|104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

2023-03-16 17:09:27 29

原创 算法刷题|二叉树的层序遍历、226.翻转二叉树、101.对称二叉树

题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。

2023-03-15 21:30:08 31

空空如也

空空如也

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

TA关注的人

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