2024年6月刷题记录
2024年6月1日
【leetcode】2928. 给小朋友们分糖果 I
题意:
给你两个正整数
n和limit。请你将
n颗糖果分给3位小朋友,确保没有任何小朋友得到超过limit颗糖果,请你返回满足此条件下的 总方案数 。
2024年6月2日
【leetcode】575. 分糖果
题意:
Alice 有
n枚糖,其中第i枚糖的类型为candyType[i]。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。医生建议 Alice 要少摄入糖分,只吃掉她所有糖的
n / 2即可(n是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。给你一个长度为
n的整数数组candyType,返回: Alice 在仅吃掉n / 2枚糖的情况下,可以吃到糖的 最多 种类数。
2024年6月3日
【leetcode】1103. 分糖果 II
题意:
排排坐,分糖果。
我们买了一些糖果
candies,打算把它们分给排好队的n = num_people个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友
n颗糖果。然后,我们再回到队伍的起点,给第一个小朋友
n + 1颗糖果,第二个小朋友n + 2颗,依此类推,直到给最后一个小朋友2 * n颗糖果。重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果。注意,就算我们手中的剩下糖果数不够(不比前一次发出的糖果多),这些糖果也会全部发给当前的小朋友。
返回一个长度为
num_people、元素之和为candies的数组,以表示糖果的最终分发情况(即ans[i]表示第i个小朋友分到的糖果数)。
2024年6月4日
【leetcode】3067. 在带权树网络中统计可连接服务器对数目
题意:
给你一棵无根带权树,树中总共有
n个节点,分别表示n个服务器,服务器从0到n - 1编号。同时给你一个数组edges,其中edges[i] = [ai, bi, weighti]表示节点ai和bi之间有一条双向边,边的权值为weighti。再给你一个整数signalSpeed。如果两个服务器
a,b和c满足以下条件,那么我们称服务器a和b是通过服务器c可连接的 :
a < b,a != c且b != c。- 从
c到a的距离是可以被signalSpeed整除的。- 从
c到b的距离是可以被signalSpeed整除的。- 从
c到b的路径与从c到a的路径没有任何公共边。请你返回一个长度为
n的整数数组count,其中count[i]表示通过服务器i可连接 的服务器对的 数目 。
2024年6月5日
【leetcode】169. 多数元素
题意:
给定一个大小为
n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2024年6月6日
【leetcode】2938. 区分黑球与白球
题意:
桌子上有
n个球,每个球的颜色不是黑色,就是白色。给你一个长度为
n、下标从 0 开始的二进制字符串s,其中1和0分别代表黑色和白色的球。在每一步中,你可以选择两个相邻的球并交换它们。
返回「将所有黑色球都移到右侧,所有白色球都移到左侧所需的 最小步数」。
2024年6月7日
【leetcode】3038. 相同分数的最大操作数目 I
题意:
给你一个整数数组
nums,如果nums至少 包含2个元素,你可以执行以下操作:
- 选择
nums中的前两个元素并将它们删除。一次操作的 分数 是被删除元素的和。
在确保 所有操作分数相同 的前提下,请你求出 最多 能进行多少次操作。
请你返回按照上述要求 最多 可以进行的操作次数。
2024年6月8日
【leetcode】3040. 相同分数的最大操作数目 II
题意:
给你一个整数数组
nums,如果nums至少 包含2个元素,你可以执行以下操作中的 任意 一个:
- 选择
nums中最前面两个元素并且删除它们。- 选择
nums中最后两个元素并且删除它们。- 选择
nums中第一个和最后一个元素并且删除它们。一次操作的 分数 是被删除元素的和。
在确保 所有操作分数相同 的前提下,请你求出 最多 能进行多少次操作。
请你返回按照上述要求 最多 可以进行的操作次数。
2024年6月9日
【leetcode】312. 戳气球
题意:
有
n个气球,编号为0到n - 1,每个气球上都标有一个数字,这些数字存在数组nums中。现在要求你戳破所有的气球。戳破第
i个气球,你可以获得nums[i - 1] * nums[i] * nums[i + 1]枚硬币。 这里的i - 1和i + 1代表和i相邻的两个气球的序号。如果i - 1或i + 1超出了数组的边界,那么就当它是一个数字为1的气球。求所能获得硬币的最大数量。
2024年6月10日
【leetcode】881. 救生艇
题意:
给定数组
people。people[i]表示第i个人的体重 ,船的数量不限,每艘船可以承载的最大重量为limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为
limit。返回 承载所有人所需的最小船数 。
2024年6月11日
【leetcode】419. 甲板上的战舰
题意:
给你一个大小为
m x n的矩阵board表示甲板,其中,每个单元格可以是一艘战舰'X'或者是一个空位'.',返回在甲板board上放置的 战舰 的数量。战舰 只能水平或者垂直放置在
board上。换句话说,战舰只能按1 x k(1行,k列)或k x 1(k行,1列)的形状建造,其中k可以是任意大小。两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。
2024年6月12日
【leetcode】2806. 取整购买后的账户余额
题意:
一开始,你的银行账户里有
100块钱。给你一个整数
purchaseAmount,它表示你在一次购买中愿意支出的金额。在一个商店里,你进行一次购买,实际支出的金额会向 最近 的
10的 倍数 取整。换句话说,你实际会支付一个 非负 金额roundedAmount,满足roundedAmount是10的倍数且abs(roundedAmount - purchaseAmount)的值 最小 。如果存在多于一个最接近的
10的倍数,较大的倍数 是你的实际支出金额。请你返回一个整数,表示你在愿意支出金额为
purchaseAmount块钱的前提下,购买之后剩下的余额。注意:
0也是10的倍数。
2024年6月13日
【leetcode】189. 轮转数组
题意:
给定一个整数数组
nums,将数组中的元素向右轮转k个位置,其中k是非负数。
2024年6月14日
【leetcode】2786. 访问数组中的位置使分数最大
题意:
给你一个下标从 0 开始的整数数组
nums和一个正整数x。你 一开始 在数组的位置
0处,你可以按照下述规则访问数组中的其他位置:
- 如果你当前在位置
i,那么你可以移动到满足i < j的 任意 位置j。- 对于你访问的位置
i,你可以获得分数nums[i]。- 如果你从位置
i移动到位置j且nums[i]和nums[j]的 奇偶性 不同,那么你将失去分数x。请你返回你能得到的 最大 得分之和。
注意 ,你一开始的分数为
nums[0]。
2024年6月15日
【leetcode】2779. 数组的最大美丽值
题意:
给你一个下标从 0 开始的整数数组
nums和一个 非负 整数k。在一步操作中,你可以执行下述指令:
- 在范围
[0, nums.length - 1]中选择一个 此前没有选过 的下标i。- 将
nums[i]替换为范围[nums[i] - k, nums[i] + k]内的任一整数。数组的 美丽值 定义为数组中由相等元素组成的最长子序列的长度。
对数组
nums执行上述操作任意次后,返回数组可能取得的 最大 美丽值。注意:你 只 能对每个下标执行 一次 此操作。
数组的 子序列 定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。
2024年6月16日
【leetcode】521. 最长特殊序列 Ⅰ
题意:
给你两个字符串
a和b,请返回 这两个字符串中 最长的特殊序列 的长度。如果不存在,则返回-1。「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) 。
字符串
s的子序列是在从s中删除任意数量的字符后可以获得的字符串。
- 例如,
"abc"是"aebdc"的子序列,因为删除"a***e***b***d\***c"中斜体加粗的字符可以得到"abc"。"aebdc"的子序列还包括"aebdc"、"aeb"和""(空字符串)。
2024年6月17日
【leetcode】522. 最长特殊序列 II
题意:
给定字符串列表
strs,返回其中 最长的特殊序列 的长度。如果最长特殊序列不存在,返回-1。特殊序列 定义如下:该序列为某字符串 独有的子序列(即不能是其他字符串的子序列)。
s的 子序列可以通过删去字符串s中的某些字符实现。
- 例如,
"abc"是"aebdc"的子序列,因为您可以删除"aebdc"中的下划线字符来得到"abc"。"aebdc"的子序列还包括"aebdc"、"aeb"和 "" (空字符串)。
2024年6月18日
【leetcode】2288. 价格减免
题意:
句子 是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号
'$'。如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个 价格 。
- 例如
"$100"、"$23"和"$6"表示价格,而"100"、"$"和"$1e5不是。给你一个字符串
sentence表示一个句子和一个整数discount。对于每个表示价格的单词,都在价格的基础上减免discount%,并 更新 该单词到句子中。所有更新后的价格应该表示为一个 恰好保留小数点后两位 的数字。返回表示修改后句子的字符串。
注意:所有价格 最多 为
10位数字。
2024年6月19日
【leetcode】121. 买卖股票的最佳时机
题意:
给定一个数组
prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回
0。
2024年6月20日
【leetcode】2748. 美丽下标对的数目
题意:
给你一个下标从 0 开始的整数数组
nums。如果下标对i、j满足0 ≤ i < j < nums.length,如果nums[i]的 第一个数字 和nums[j]的 最后一个数字 互质 ,则认为nums[i]和nums[j]是一组 美丽下标对 。返回
nums中 美丽下标对 的总数目。对于两个整数
x和y,如果不存在大于 1 的整数可以整除它们,则认为x和y互质 。换而言之,如果gcd(x, y) == 1,则认为x和y互质,其中gcd(x, y)是x和y的 最大公因数 。
2024年6月21日
【leetcode】LCP 61. 气温变化趋势
题意:
力扣城计划在两地设立「力扣嘉年华」的分会场,气象小组正在分析两地区的气温变化趋势,对于第
i ~ (i+1)天的气温变化趋势,将根据以下规则判断:
- 若第
i+1天的气温 高于 第i天,为 上升 趋势- 若第
i+1天的气温 等于 第i天,为 平稳 趋势- 若第
i+1天的气温 低于 第i天,为 下降 趋势已知
temperatureA[i]和temperatureB[i]分别表示第i天两地区的气温。 组委会希望找到一段天数尽可能多,且两地气温变化趋势相同的时间举办嘉年华活动。请分析并返回两地气温变化趋势相同的最大连续天数。即最大的
n,使得第i~i+n天之间,两地气温变化趋势相同
2024年6月22日
【leetcode】125. 验证回文串
题意:
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串
s,如果它是 回文串 ,返回true;否则,返回false。
2024年6月23日
【leetcode】520. 检测大写字母
题意:
我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如
"USA"。- 单词中所有字母都不是大写,比如
"leetcode"。- 如果单词不只含有一个字母,只有首字母大写, 比如
"Google"。给你一个字符串
word。如果大写用法正确,返回true;否则,返回false。
2024年6月24日
【leetcode】503. 下一个更大元素 II
题意:
给定一个循环数组
nums(nums[nums.length - 1]的下一个元素是nums[0]),返回nums中每个元素的 下一个更大元素 。数字
x的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出-1。
2024年6月25日
【leetcode】383. 赎金信
题意:
给你两个字符串:
ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回
true;否则返回false。
magazine中的每个字符只能在ransomNote中使用一次。
2024年6月26日
【leetcode】9. 回文数
题意:
给你一个整数
x,如果x是一个回文整数,返回true;否则,返回false。回文数 是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121是回文,而123不是。
2024年6月27日
【leetcode】2734. 执行子串操作后的字典序最小字符串
题意:
给你一个仅由小写英文字母组成的字符串
s。在一步操作中,你可以完成以下行为:
- 选择
s的任一非空子字符串,可能是整个字符串,接着将字符串中的每一个字符替换为英文字母表中的前一个字符。例如,'b' 用 'a' 替换,'a' 用 'z' 替换。返回执行上述操作 恰好一次 后可以获得的 字典序最小 的字符串。
子字符串 是字符串中的一个连续字符序列。
现有长度相同的两个字符串
x和 字符串y,在满足x[i] != y[i]的第一个位置i上,如果x[i]在字母表中先于y[i]出现,则认为字符串x比字符串y字典序更小 。
2024年6月28日
【leetcode】2742. 给墙壁刷油漆
题意:
给你两个长度为
n下标从 0 开始的整数数组cost和time,分别表示给n堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠:
- 一位需要 付费 的油漆匠,刷第
i堵墙需要花费time[i]单位的时间,开销为cost[i]单位的钱。- 一位 免费 的油漆匠,刷 任意 一堵墙的时间为
1单位,开销为0。但是必须在付费油漆匠 工作 时,免费油漆匠才会工作。请你返回刷完
n堵墙最少开销为多少。
2024年6月29日
【leetcode】2710. 移除字符串中的尾随零
题意:
给你一个用字符串表示的正整数
num,请你以字符串形式返回不含尾随零的整数num。

浙公网安备 33010602011771号