自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 322.找零钱

给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。

2024-09-05 16:30:14 417

原创 377.组合总和4

给你一个由整数组成的数组nums,和一个目标整数target。请你从nums中找出并返回总和为target的元素组合的个数。题目数据保证答案符合 32 位整数范围。

2024-09-05 12:52:34 129

原创 518.零钱兑换2

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

2024-09-04 16:34:04 358

原创 474.一和零

给你一个二进制字符串数组strs和两个整数m和n。请你找出并返回strs的最大子集的长度,该子集中有m个0和n个1。如果x的所有元素也是y的元素,集合x是集合y的。

2024-09-03 10:04:49 300

原创 494.目标和

给你一个非负整数数组nums和一个整数target。向数组中的每个整数前添加'+'或'-',然后串联起所有整数,可以构造一个2'+'1'-'"+2-1"返回可以通过上述方法构造的、运算结果等于target的不同的数目。

2024-09-02 14:06:55 129

原创 416.分割等和子集

给你一个的数组nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

2024-09-02 10:13:13 184

原创 96.不同的二叉搜索树

给你一个整数n,求恰由n个节点组成且节点值从1到n互不相同的有多少种?返回满足题意的二叉搜索树的种数。

2024-08-29 11:01:29 172

原创 343.整数拆分

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

2024-08-28 11:15:28 226

原创 63.不同路径2

一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用1和0来表示。

2024-08-28 10:19:46 423

原创 62.不同路径

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

2024-08-27 10:29:10 281

原创 746.使用最小花费爬楼梯

给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。

2024-08-26 11:10:43 342

原创 509.斐波那契数列

(通常用F(n)表示)形成的序列称为。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。给定n,请计算F(n)。

2024-08-26 10:18:01 238

原创 968.监控二叉树*

给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视计算监控树的所有节点所需的最小摄像头数量。

2024-08-23 10:37:02 425

原创 738.单调递增的数字

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

2024-08-22 20:40:47 232

原创 56.合并区间

以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。

2024-08-20 20:04:50 109

原创 763.划分字母区间

给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是s。返回一个表示每个字符串片段的长度的列表。

2024-08-20 09:44:22 365

原创 452.用最少数量的箭引爆气球

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组points,其中表示水平直径在xstart和xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为x``startx``end, 且满足,则该气球会被。可以射出的弓箭的数量。弓箭一旦被射出之后,可以无限地前进。给你一个数组points返回引爆所有气球所必须射出的弓箭数。

2024-08-15 11:15:49 352

原创 406.根据身高重建队列*

假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个表示第i个人的身高为hi,前面有ki个身高大于或等于hi的人。请你重新构造并返回输入数组people所表示的队列。返回的队列应该格式化为数组queue,其中是队列中第j个人的属性(queue[0]是排在队列前面的人)。

2024-08-13 10:12:48 233

原创 135.分发糖果

n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。1请你给每个孩子分发糖果,计算并返回需要准备的。

2024-08-12 11:39:52 398

原创 134.加油站*

在一条环路上有n个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组gas和cost,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。如果存在解,则它是的。

2024-08-09 13:25:42 247

原创 1005.K次取反后最大化数组和

给你一个整数数组nums和一个整数kinums[i]-nums[i]重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数组。

2024-08-08 11:10:29 223

原创 45.跳跃游戏2

给定一个长度为n的整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意返回到达的最小跳跃次数。生成的测试用例可以到达。

2024-08-08 10:41:33 108

原创 55.跳跃游戏

给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。

2024-08-08 10:04:11 218

原创 122.买卖股票的最佳时机

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

2024-08-08 09:08:08 218

原创 53.最大子数组和

给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。

2024-08-07 14:02:22 186

原创 376.摆动序列

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 **摆动序列。**第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。给你一个整数数组nums,返回nums中作为的。

2024-08-07 13:22:11 140

原创 455.分发饼干

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

2024-08-07 12:19:46 186

原创 37.解数独

编写一个程序,通过填充空格来解决数独问题。数独的解法需1-91-91-93x3数独部分空格内已填入了数字,空白格用'.'表示。

2024-08-06 10:43:09 171

原创 【无标题】

研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回所有不同的的解决方案。每一种解法包含一个不同的的棋子放置方案,该方案中'Q'和'.'分别代表了皇后和空位。

2024-08-02 10:54:32 392

原创 46.全排列

这道题目将数组中的数字进行全排列,与前面组合不同,前面组合是通过顺序来去除用过的数字(即startIndex,选过之后不会再选第二次,接着选后面的数字),变化的是不同数之间的组合。但全排列变化的是相同数之间的位置变换,因此每个位置的数(每层递归)都必须重新遍历整个数组,但需排除当前list已经包含的数字,需要使用一个used数组来记录。这样一来就可以理解为在每个位置上暴力选取整个数组的数字(不重复),来完成全排列。

2024-04-07 09:51:25 269

原创 78.子集&90.子集2

又回到了组合的模板中来,这道题相比于前面的题省去了递归终止条件。大差不差。

2024-03-28 18:26:52 262

原创 93.复原IP地址

按照昨天分割字符串的套路。点1:终止条件设为在遍历完整个串时发生,且这道题目需要考虑将分割的子串数,即ip地址为四段,因此需要两个共同条件:遍历整串+子串四段。若只达到其中一个而另一个不满足,则返回。点2:在for循环分割串时,正常分割从startIndex开始,母串尾结束,这道题需要额外考虑其他三个条件。1.子串长小于3 2.不能由0作为数字开端,0除外 3.子串大小介于0-255点3:利用StringBuilder构建串时,需要添加删除,删除最后一个网段。

2024-03-27 13:43:17 156

原创 131.分割回文串

前面回溯联系的都是组合,每次取一个字符出来进行拼接。回溯分割做法,难点在于什么情况下终止回溯。如何分割,每次怎么取。先解决第一个问题,按照题目意思,需要将s分割成多个回文串,那么终止条件则是找到了分割的办法,且所有子串为回文串。如何分割,按照回溯模板,在for循环中进行思考。不同于组合for循环的i下标用于每次取出一个字符用于当前位置的组合,在分割中i下标扮演着分割线的作用,负责将起始位置到i的字符分割出来。按照题目意思,分割出来的子串为回文串,那么添加,递归查找后续子串内的回文串分割方法;

2024-03-26 20:01:04 195

原创 39.组合总和&40组合总和2

还是按照组合回溯的思想来解,与原先组合区别就是集合内的元素可重复使用,刚开始考虑原先回溯中startIndex是为了避免重复,那么只需每层递归for循环都完全遍历集合中的元素即可。但结果出现了排列不同的结果,如[2,2,3],[2,3,2]的情况,于是还是要设置startIndex,要求当前元素作为起始元素时,可以再次使用自身,但无法使用前面已经遍历过的元素,因此startIndex可设为当前循环轮数,保证一个循环内的每层递归使用的集合范围不变。

2024-03-22 14:09:32 162

原创 17.电话号码的字母组合

本题也是组合的回溯操作,区别于前面两题,这题的回溯操作是在不同的集合内,因此需要考虑在每一层的递归时应该确定哪一个集合,那么在for循环的范围就可控制为这个数字对应的字母数量。此外,还需考虑digits映射问题,可以使用map或String数组来控制,事先在构建时加入。按照回溯模板,递归结束是按每次遍历完digits中的元素一次,即当前保存字符的temp大小等于digits的大小。

2024-03-21 13:03:12 122

原创 216.组合总和3

借助前面组合回溯的方法,可以套用到本题中,递归过程中一旦超出题目条件或达到题目要求即返回。对回溯的写法有了进一步理解,for循环控制的是当前递归层(组合位置)的值,而递归目的是找下一个层(组合位置)的数,传入的startIndex为确保不重复。

2024-03-20 15:52:42 218

原创 77.组合

无,按照代码随想录给出的模板,需要出现一个终止条件,以及for循环。终止条件负责收集结果及返回。for循环控制横向,循环内进行递归控制纵向。

2024-03-13 15:25:18 217

原创 538.把二叉搜索树转换为累加树

首先是想到迭代法,反中序遍历,右中左,依次遍历修改值。还有递归法,同样反中序遍历,递归修改每个节点的值。题解mrriors算法遍历看不懂。

2024-03-12 15:26:30 200

原创 108.将有序数组转换为二叉搜索树

既然是递增的有序数组,那么只需从中间开始向两边遍历建树即可。考虑到平衡二叉树,那么需每次确定中心节点,中心节点两边为左右子树。采用递归调用可以解决。写了代码一直报错,查看题解发现代码长得差不多,不知道哪里出了问题。可能是数组边界没处理好。

2024-03-12 13:02:35 193

原创 669.修剪二叉搜索树

这个题也可以算作对二叉搜索树整体操作的一类题,这类题的普遍解法是通过递归+可能出现的不同情况分析进行解题。本题也是一样,考虑root是不是在边界内,还是在边界两边(两种情况)。

2024-03-12 12:57:24 189

空空如也

空空如也

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

TA关注的人

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