2022年12月1日
leetcode1779. 找到最近的有相同 X 或 Y 坐标的点
链接地址:https://leetcode.cn/problems/find-nearest-point-that-has-the-same-x-or-y-coordinate/
题意:
给你两个整数
x
和y
,表示你在一个笛卡尔坐标系下的(x, y)
处。同时,在同一个坐标系下给你一个数组points
,其中points[i] = [ai, bi]
表示在(ai, bi)
处有一个点。当一个点与你所在的位置有相同的x
坐标或者相同的y
坐标时,我们称这个点是 有效的 。请返回距离你当前位置 曼哈顿距离 最近的 有效 点的下标(下标从 0 开始)。如果有多个最近的有效点,请返回下标 最小 的一个。如果没有有效点,请返回
-1
。两个点
(x1, y1)
和(x2, y2)
之间的 曼哈顿距离 为abs(x1 - x2) + abs(y1 - y2)
。
2022年12月2日
leetcode1769. 移动所有球到每个盒子所需的最小操作数
链接地址:https://leetcode.cn/problems/minimum-number-of-operations-to-move-all-balls-to-each-box/
题意:
有
n
个盒子。给你一个长度为n
的二进制字符串boxes
,其中boxes[i]
的值为'0'
表示第i
个盒子是 空 的,而boxes[i]
的值为'1'
表示盒子里有 一个 小球。在一步操作中,你可以将 一个 小球从某个盒子移动到一个与之相邻的盒子中。第
i
个盒子和第j
个盒子相邻需满足abs(i - j) == 1
。注意,操作执行后,某些盒子中可能会存在不止一个小球。返回一个长度为
n
的数组answer
,其中answer[i]
是将所有小球移动到第i
个盒子所需的 最小 操作数。每个
answer[i]
都需要根据盒子的 初始状态 进行计算。
2022年12月3日
leetcode1796. 字符串中第二大的数字
链接地址:https://leetcode.cn/problems/second-largest-digit-in-a-string/
题意:
给你一个混合字符串
s
,请你返回s
中 第二大 的数字,如果不存在第二大的数字,请你返回-1
。混合字符串 由小写英文字母和数字组成。
2022年12月4日
leetcode1774. 最接近目标价格的甜点成本
链接地址:https://leetcode.cn/problems/closest-dessert-cost/
题意:
你打算做甜点,现在需要购买配料。目前共有
n
种冰激凌基料和m
种配料可供选购。而制作甜点需要遵循以下几条规则:
- 必须选择 一种 冰激凌基料。
- 可以添加 一种或多种 配料,也可以不添加任何配料。
- 每种类型的配料 最多两份 。
给你以下三个输入:
baseCosts
,一个长度为n
的整数数组,其中每个baseCosts[i]
表示第i
种冰激凌基料的价格。toppingCosts
,一个长度为m
的整数数组,其中每个toppingCosts[i]
表示 一份 第i
种冰激凌配料的价格。target
,一个整数,表示你制作甜点的目标价格。你希望自己做的甜点总成本尽可能接近目标价格
target
。返回最接近
target
的甜点成本。如果有多种方案,返回 成本相对较低 的一种。
2022年12月5日
leetcode11. 盛最多水的容器
链接地址:https://leetcode.cn/problems/container-with-most-water/
题意:
给定一个长度为
n
的整数数组height
。有n
条垂线,第i
条线的两个端点是(i, 0)
和(i, height[i])
。找出其中的两条线,使得它们与
x
轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。
说明:你不能倾斜容器。
2022年12月6日
leetcode1805. 字符串中不同整数的数目
链接地址:https://leetcode.cn/problems/number-of-different-integers-in-a-string/
题意:
给你一个字符串
word
,该字符串由数字和小写英文字母组成。请你用空格替换每个不是数字的字符。例如,
"a123bc34d8ef34"
将会变成" 123 34 8 34"
。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):"123"
、"34"
、"8"
和"34"
。返回对
word
完成替换后形成的 不同 整数的数目。只有当两个整数的 不含前导零 的十进制表示不同, 才认为这两个整数也不同。
2022年12月7日
leetcode1775. 通过最少操作次数使数组的和相等
链接地址:https://leetcode.cn/problems/equal-sum-arrays-with-minimum-number-of-operations/
题意:
给你两个长度可能不等的整数数组
nums1
和nums2
。两个数组中的所有值都在1
到6
之间(包含1
和6
)。每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成
1
到6
之间 任意 的值(包含1
和6
)。请你返回使
nums1
中所有数的和与nums2
中所有数的和相等的最少操作次数。如果无法使两个数组的和相等,请返回-1
。
2022年12月8日
leetcode1812. 判断国际象棋棋盘中一个格子的颜色
链接地址:https://leetcode.cn/problems/determine-color-of-a-chessboard-square/
题意:
给你一个坐标
coordinates
,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。如果所给格子的颜色是白色,请你返回
true
,如果是黑色,请返回false
。给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。
2022年12月9日
leetcode1780. 判断一个数字是否可以表示成三的幂的和
链接地址:https://leetcode.cn/problems/check-if-number-is-a-sum-of-powers-of-three/
题意:
给你一个整数
n
,如果你可以将n
表示成若干个不同的三的幂之和,请你返回true
,否则请返回false
。对于一个整数
y
,如果存在整数x
满足y == 3x
,我们称这个整数y
是三的幂。
2022年12月10日
leetcode1691. 堆叠长方体的最大高度
链接地址:https://leetcode.cn/problems/maximum-height-by-stacking-cuboids/
题意:
给你
n
个长方体cuboids
,其中第i
个长方体的长宽高表示为cuboids[i] = [widthi, lengthi, heighti]
(下标从 0 开始)。请你从cuboids
选出一个 子集 ,并将它们堆叠起来。如果
widthi <= widthj
且lengthi <= lengthj
且heighti <= heightj
,你就可以将长方体i
堆叠在长方体j
上。你可以通过旋转把长方体的长宽高重新排列,以将它放在另一个长方体上。返回 堆叠长方体
cuboids
可以得到的 最大高度 。
解题思路:
2022年12月11日
leetcode1827. 最少操作使数组递增
链接地址:https://leetcode.cn/problems/minimum-operations-to-make-the-array-increasing/
题意:
给你一个整数数组
nums
(下标从 0 开始)。每一次操作中,你可以选择数组中一个元素,并将它增加1
。
- 比方说,如果
nums = [1,2,3]
,你可以选择增加nums[1]
得到nums = [1,**3**,3]
。请你返回使
nums
严格递增 的 最少 操作次数。我们称数组
nums
是 严格递增的 ,当它满足对于所有的0 <= i < nums.length - 1
都有nums[i] < nums[i+1]
。一个长度为1
的数组是严格递增的一种特殊情况。
2022年12月12日
leetcode1781. 所有子字符串美丽值之和
链接地址:https://leetcode.cn/problems/sum-of-beauty-of-all-substrings/
题意:
一个字符串的 美丽值 定义为:出现频率最高字符与出现频率最低字符的出现次数之差。
- 比方说,
"abaacc"
的美丽值为3 - 1 = 2
。给你一个字符串
s
,请你返回它所有子字符串的 美丽值 之和。
2022年12月13日
leetcode1832. 判断句子是否为全字母句
链接地址:https://leetcode.cn/problems/check-if-the-sentence-is-pangram/
题意:
全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串
sentence
,请你判断sentence
是否为 全字母句 。如果是,返回
true
;否则,返回false
。
2022年12月14日
leetcode1697. 检查边长度限制的路径是否存在
链接地址:https://leetcode.cn/problems/checking-existence-of-edge-length-limited-paths/
题意:
给你一个
n
个点组成的无向图边集edgeList
,其中edgeList[i] = [ui, vi, disi]
表示点ui
和点vi
之间有一条长度为disi
的边。请注意,两个点之间可能有 超过一条边 。给你一个查询数组
queries
,其中queries[j] = [pj, qj, limitj]
,你的任务是对于每个查询queries[j]
,判断是否存在从pj
到qj
的路径,且这条路径上的每一条边都 严格小于limitj
。请你返回一个 布尔数组
answer
,其中answer.length == queries.length
,当queries[j]
的查询结果为true
时,answer
第j
个值为true
,否则为false
。
2022年12月15日
leetcode1945. 字符串转化后的各位数字之和
链接地址:https://leetcode.cn/problems/sum-of-digits-of-string-after-convert/
题意:
给你一个由小写字母组成的字符串
s
,以及一个整数k
。首先,用字母在字母表中的位置替换该字母,将
s
转化 为一个整数(也就是,'a'
用1
替换,'b'
用2
替换,...'z'
用26
替换)。接着,将整数 转换 为其 各位数字之和 。共重复 转换 操作k
次 。例如,如果
s = "zbax"
且k = 2
,那么执行下述步骤后得到的结果是整数8
:
- 转化:
"zbax" ➝ "(26)(2)(1)(24)" ➝ "262124" ➝ 262124
- 转换 #1:
262124 ➝ 2 + 6 + 2 + 1 + 2 + 4 ➝ 17
- 转换 #2:
17 ➝ 1 + 7 ➝ 8
返回执行上述操作后得到的结果整数。
2022年12月16日
leetcode1785. 构成特定和需要添加的最少元素
链接地址:https://leetcode.cn/problems/minimum-elements-to-add-to-form-a-given-sum/
题意:
给你一个整数数组
nums
,和两个整数limit
与goal
。数组nums
有一条重要属性:abs(nums[i]) <= limit
。返回使数组元素总和等于
goal
所需要向数组中添加的 最少元素数量 ,添加元素 不应改变 数组中abs(nums[i]) <= limit
这一属性。注意,如果
x >= 0
,那么abs(x)
等于x
;否则,等于-x
。
大感冒(休息一周)
2022年12月23日
leetcode2011. 执行操作后的变量值
链接地址:https://leetcode.cn/problems/final-value-of-variable-after-performing-operations/
题意:
存在一种仅支持 4 种操作和 1 个变量
X
的编程语言:
++X
和X++
使变量X
的值 加1
--X
和X--
使变量X
的值 减1
最初,
X
的值是0
给你一个字符串数组
operations
,这是由操作组成的一个列表,返回执行所有操作后,X
的 最终值 。
2022年12月24日
leetcode1754. 构造字典序最大的合并字符串
链接地址:https://leetcode.cn/problems/largest-merge-of-two-strings/
题意:
给你两个字符串
word1
和word2
。你需要按下述方式构造一个新字符串merge
:如果word1
或word2
非空,选择 下面选项之一 继续操作:
- 如果
word1
非空,将word1
中的第一个字符附加到merge
的末尾,并将其从word1
中移除。
- 例如,
word1 = "abc"
且merge = "dv"
,在执行此选项操作之后,word1 = "bc"
,同时merge = "dva"
。- 如果
word2
非空,将word2
中的第一个字符附加到merge
的末尾,并将其从word2
中移除。
- 例如,
word2 = "abc"
且merge = ""
,在执行此选项操作之后,word2 = "bc"
,同时merge = "a"
。返回你可以构造的字典序 最大 的合并字符串
merge
。长度相同的两个字符串
a
和b
比较字典序大小,如果在a
和b
出现不同的第一个位置,a
中字符在字母表中的出现顺序位于b
中相应字符之后,就认为字符串a
按字典序比字符串b
更大。例如,"abcd"
按字典序比"abcc"
更大,因为两个字符串出现不同的第一个位置是第四个字符,而d
在字母表中的出现顺序位于c
之后。
2022年12月25日
leetcode1739. 放置盒子
链接地址:https://leetcode.cn/problems/building-boxes/
题意:
有一个立方体房间,其长度、宽度和高度都等于
n
个单位。请你在房间里放置n
个盒子,每个盒子都是一个单位边长的立方体。放置规则如下:
- 你可以把盒子放在地板上的任何地方。
- 如果盒子
x
需要放置在盒子y
的顶部,那么盒子y
竖直的四个侧面都 必须 与另一个盒子或墙相邻。给你一个整数
n
,返回接触地面的盒子的 最少 可能数量。
2022年12月26日
leetcode1759. 统计同构子字符串的数目
链接地址:https://leetcode.cn/problems/count-number-of-homogenous-substrings/
题意:
给你一个字符串
s
,返回s
中 同构子字符串 的数目。由于答案可能很大,只需返回对109 + 7
取余 后的结果。同构字符串 的定义为:如果一个字符串中的所有字符都相同,那么该字符串就是同构字符串。
子字符串 是字符串中的一个连续字符序列。
2022年12月27日
leetcode2027. 转换字符串的最少操作次数
链接地址:https://leetcode.cn/problems/minimum-moves-to-convert-string/
题意:
给你一个字符串
s
,由n
个字符组成,每个字符不是'X'
就是'O'
。一次 操作 定义为从
s
中选出 三个连续字符 并将选中的每个字符都转换为'O'
。注意,如果字符已经是'O'
,只需要保持 不变 。返回将
s
中所有字符均转换为'O'
需要执行的 最少 操作次数。
2022年12月28日
leetcode1750. 删除字符串两端相同字符后的最短长度
链接地址:https://leetcode.cn/problems/minimum-length-of-string-after-deleting-similar-ends/
题意:
给你一个只包含字符
'a'
,'b'
和'c'
的字符串s
,你可以执行下面这个操作(5 个步骤)任意次:
- 选择字符串
s
一个 非空 的前缀,这个前缀的所有字符都相同。- 选择字符串
s
一个 非空 的后缀,这个后缀的所有字符都相同。- 前缀和后缀在字符串中任意位置都不能有交集。
- 前缀和后缀包含的所有字符都要相同。
- 同时删除前缀和后缀。
请你返回对字符串
s
执行上面操作任意次以后(可能 0 次),能得到的 最短长度 。
2022年12月29日
leetcode2032. 至少在两个数组中出现的值
链接地址:https://leetcode.cn/problems/two-out-of-three/
题意:
给你三个整数数组
nums1
、nums2
和nums3
,请你构造并返回一个 元素各不相同的 数组,且由 至少 在 两个 数组中出现的所有值组成。数组中的元素可以按 任意 顺序排列。
2022年12月30日
leetcode1760. 袋子里最少数目的球
链接地址:https://leetcode.cn/problems/minimum-limit-of-balls-in-a-bag/
题意:
给你一个整数数组
nums
,其中nums[i]
表示第i
个袋子里球的数目。同时给你一个整数maxOperations
。你可以进行如下操作至多
maxOperations
次:
- 选择任意一个袋子,并将袋子里的球分到 2 个新的袋子中,每个袋子里都有正整数个球。
- 比方说,一个袋子里有
5
个球,你可以把它们分到两个新袋子里,分别有1
个和4
个球,或者分别有2
个和3
个球。你的开销是单个袋子里球数目的 最大值 ,你想要 最小化 开销。
请你返回进行上述操作后的最小开销。
2022年12月31日
leetcode2037. 使每位学生都有座位的最少移动次数
链接地址:https://leetcode.cn/problems/minimum-number-of-moves-to-seat-everyone/
题意:
标签:12,cn,problems,2022,https,字符串,刷题 From: https://www.cnblogs.com/jiamian/p/17017692.html一个房间里有
n
个座位和n
名学生,房间用一个数轴表示。给你一个长度为n
的数组seats
,其中seats[i]
是第i
个座位的位置。同时给你一个长度为n
的数组students
,其中students[j]
是第j
位学生的位置。你可以执行以下操作任意次:
- 增加或者减少第
i
位学生的位置,每次变化量为1
(也就是将第i
位学生从位置x
移动到x + 1
或者x - 1
)请你返回使所有学生都有座位坐的 最少移动次数 ,并确保没有两位学生的座位相同。
请注意,初始时有可能有多个座位或者多位学生在 同一 位置。