![](https://img-blog.csdnimg.cn/20210726141505756.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
力扣LeetCode
文章平均质量分 86
LetMeFly
Tisfy
LetMeFly
展开
-
LeetCode 3011.判断一个数组是否可以变为有序:分组循环
LeetCode 3011.判断一个数组是否可以变为有序:分组循环给你一个下标从 0 开始且全是 正 整数的数组 nums 。一次 操作 中,如果两个 相邻 元素在二进制下数位为 1 的数目 相同 ,那么你可以将这两个元素交换。你可以执行这个操作 任意次 (也可以 0 次)。如果你可以使数组变有序,请你返回 true ,否则返回 false 。原创 2024-07-13 00:37:28 · 416 阅读 · 0 评论 -
LeetCode 2974.最小数字游戏:排序+交换奇偶位
LeetCode 2974.最小数字游戏:排序+交换奇偶位你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ,同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏,游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下:每一轮,Alice 先从 nums 中移除一个 最小 元素,然后 Bob 执行同样的操作。接着,Bob 会将移除的元素添加到数组 arr 中,然后 Alice 也执行同样的操作。游戏持续进行,直到 nums 变为空。返回结果数组 ar原创 2024-07-12 00:29:12 · 1015 阅读 · 0 评论 -
LeetCode 2970.统计移除递增子数组的数目 I:深夜刷题之——50的数据n^3暴力秒了
LeetCode 2970.统计移除递增子数组的数目 I:深夜刷题之——50的数据n^3暴力秒了给你一个下标从 0 开始的 正 整数数组 nums 。如果 nums 的一个子数组满足:移除这个子数组后剩余元素 严格递增 ,那么我们称这个子数组为 移除递增 子数组。比方说,[5, 3, 4, 6, 7] 中的 [3, 4] 是一个移除递增子数组,因为移除该子数组后,[5, 3, 4, 6, 7] 变为 [5, 6, 7] ,是严格递增的。请你返回 nums 中 移除递增 子数组的总数目。注意 ,原创 2024-07-10 00:33:23 · 933 阅读 · 0 评论 -
LeetCode 0724.寻找数组的中心下标:前缀和(时空复杂度O(n)+O(1))
LeetCode 0724.寻找数组的中心下标:前缀和(时空复杂度O(n)+O(1))给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。原创 2024-07-08 13:27:42 · 760 阅读 · 0 评论 -
LeetCode 1958.检查操作是否合法:8个方向分别遍历
LeetCode 1958.检查操作是否合法:8个方向分别遍历给你一个下标从 0 开始的 8 x 8 网格 board ,其中 board[r][c] 表示游戏棋盘上的格子 (r, c) 。棋盘上空格用 '.' 表示,白色格子用 'W' 表示,黑色格子用 'B' 表示。游戏中每次操作步骤为:选择一个空格子,将它变成你正在执行的颜色(要么白色,要么黑色)。但是,合法 操作必须满足:涂色后这个格子是 好线段的一个端点 (好线段可以是水平的,竖直的或者是对角线)。好线段 指的是一个包含 三个或者更多格子原创 2024-07-07 17:27:58 · 878 阅读 · 0 评论 -
LeetCode 3101.交替子数组计数:等差数列求和(较详题解)
LeetCode 3101.交替子数组计数:等差数列求和(较详题解)给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。返回数组 nums 中交替子数组的数量。原创 2024-07-06 11:07:51 · 625 阅读 · 0 评论 -
LeetCode 3033.修改矩阵:原地修改
LeetCode 3033.修改矩阵:原地修改一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix ,新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等,接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。返回矩阵 answer 。原创 2024-07-05 22:01:31 · 598 阅读 · 0 评论 -
LeetCode 3099.哈沙德数:计算一个数十进制下各位之和
LeetCode 3099.哈沙德数:计算一个数十进制下各位之和如果一个整数能够被其各个数位上的数字之和整除,则称之为 哈沙德数(Harshad number)。给你一个整数 x 。如果 x 是 哈沙德数 ,则返回 x 各个数位上的数字之和,否则,返回 -1 。原创 2024-07-03 19:36:26 · 907 阅读 · 0 评论 -
LeetCode 3115.质数的最大距离:质数判断
LeetCo给你一个整数数组 nums。返回两个(不一定不同的)质数在 nums 中 下标 的 最大距离。de 3115.质数的最大距离:质数判断原创 2024-07-02 11:04:10 · 374 阅读 · 0 评论 -
LeetCode 2065.最大化一张图中的路径价值:回溯
LeetCode 2065.最大化一张图中的路径价值:回溯给你一张 无向 图,图中有 n 个节点,节点编号从 0 到 n - 1 (都包括)。同时给你一个下标从 0 开始的整数数组 values ,其中 values[i] 是第 i 个节点的 价值 。同时给你一个下标从 0 开始的二维整数数组 edges ,其中 edges[j] = [uj, vj, timej] 表示节点 uj 和 vj 之间有一条需要 timej 秒才能通过的无向边。最后,给你一个整数 maxTime 。合法路径 指的是图中任意原创 2024-07-01 15:07:58 · 838 阅读 · 0 评论 -
LeetCode 2710.移除字符串中的尾随零:模拟
LeetCode 2710.移除字符串中的尾随零:模拟给你一个用字符串表示的正整数 num ,请你以字符串形式返回不含尾随零的整数 num 。原创 2024-06-29 17:30:43 · 579 阅读 · 0 评论 -
LeetCode 2734.执行子串操作后的字典序最小字符串:贪心
LeetCode 2734.执行子串操作后的字典序最小字符串:贪心给你一个仅由小写英文字母组成的字符串 s 。在一步操作中,你可以完成以下行为:选择 s 的任一非空子字符串,可能是整个字符串,接着将字符串中的每一个字符替换为英文字母表中的前一个字符。例如,'b' 用 'a' 替换,'a' 用 'z' 替换。返回执行上述操作 恰好一次 后可以获得的 字典序最小 的字符串。子字符串 是字符串中的一个连续字符序列。现有长度相同的两个字符串 x 和 字符串 y ,在满足 x[i] != y[i] 的原创 2024-06-27 23:58:12 · 919 阅读 · 0 评论 -
LeetCode 2741.特别的排列:状压DP
LeetCode 2741.特别的排列:状压DP给你一个下标从 0 开始的整数数组 nums ,它包含 n 个 互不相同 的正整数。如果 nums 的一个排列满足以下条件,我们称它是一个特别的排列:对于 0原创 2024-06-26 22:48:03 · 1056 阅读 · 0 评论 -
LeetCode 0520.检测大写字母:计数
LeetCode 0520.检测大写字母:计数我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如 "USA" 。单词中所有字母都不是大写,比如 "leetcode" 。如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。原创 2024-06-23 19:16:19 · 713 阅读 · 0 评论 -
LeetCode 2748.美丽下标对的数目:模拟
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) ==原创 2024-06-20 20:55:13 · 839 阅读 · 0 评论 -
LeetCode 2288.价格减免:模拟
LeetCode 2288.价格减免:模拟句子 是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号 '$' 。如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个 价格 。例如 "$100"、"$23" 和 "$6" 表示价格,而 "100"、"$" 和 "$1e5 不是。给你一个字符串 sentence 表示一个句子和一个整数 discount 。对于每个表示价格的单词,都在价格的基础上减免 discount% ,并 更新 该单词到句子原创 2024-06-18 19:33:18 · 713 阅读 · 0 评论 -
LeetCode 0522.最长特殊序列 II:两句话讲明思路(子序列判断)
LeetCode 0522.最长特殊序列 II:两句话讲明思路(子序列判断)给定字符串列表 strs ,返回其中 最长的特殊序列 的长度。如果最长特殊序列不存在,返回 -1 。特殊序列 定义如下:该序列为某字符串 独有的子序列(即不能是其他字符串的子序列)。 s 的 子序列可以通过删去字符串 s 中的某些字符实现。例如,"abc" 是 "aebdc" 的子序列,因为您可以删除"aebdc"中的下划线字符来得到 "abc" 。"aebdc"的子序列还包括"aebdc"、 "aeb" 和 "" (原创 2024-06-17 23:05:58 · 772 阅读 · 0 评论 -
LeetCode 0521.最长特殊序列 Ⅰ:脑筋急转弯
LeetCode 0521.最长特殊序列 Ⅰ:脑筋急转弯给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 的长度。如果不存在,则返回 -1 。「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) 。字符串 s 的子序列是在从 s 中删除任意数量的字符后可以获得的字符串。例如,"abc" 是 "aebdc" 的子序列,因为删除 "aebdc" 中斜体加粗的字符可以得到 "abc" 。 "aebdc" 的子序列还包括 "aebdc"原创 2024-06-16 18:29:50 · 999 阅读 · 0 评论 -
LeetCode 2779.数组的最大美丽值:排序 + 滑动窗口
LeetCode 2779.数组的最大美丽值:排序 + 滑动窗口给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。在一步操作中,你可以执行下述指令:在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i 。将 nums[i] 替换为范围 [nums[i] - k, nums[i] + k] 内的任一整数。数组的 美丽值 定义为数组中由相等元素组成的最长子序列的长度。对数组 nums 执行上述操作任意次后,返回数组可能取得的 最大 美丽值原创 2024-06-15 19:27:34 · 594 阅读 · 0 评论 -
LeetCode 2786.访问数组中的位置使分数最大:奇偶分开记录(逻辑还算清晰的题解)
LeetCode 2786.访问数组中的位置使分数最大:奇偶分开记录(逻辑还算清晰的题解)给你一个下标从 0 开始的整数数组 nums 和一个正整数 x 。你 一开始 在数组的位置 0 处,你可以按照下述规则访问数组中的其他位置:如果你当前在位置 i ,那么你可以移动到满足 i < j 的 任意 位置 j 。对于你访问的位置 i ,你可以获得分数 nums[i] 。如果你从位置 i 移动到位置 j 且 nums[i] 和 nums[j] 的 奇偶性 不同,那么你将失去分数 x 。请你返回你能原创 2024-06-14 19:36:05 · 767 阅读 · 0 评论 -
LeetCode 2806.取整购买后的账户余额:四舍五入
LeetCode 2806.取整购买后的账户余额:四舍五入一开始,你的银行账户里有 100 块钱。给你一个整数purchaseAmount ,它表示你在一次购买中愿意支出的金额。在一个商店里,你进行一次购买,实际支出的金额会向 最近 的 10 的 倍数 取整。换句话说,你实际会支付一个 非负 金额 roundedAmount ,满足 roundedAmount 是 10 的倍数且 abs(roundedAmount - purchaseAmount) 的值 最小 。如果存在多于一个最接近的 1原创 2024-06-12 11:18:22 · 990 阅读 · 0 评论 -
LeetCode 0419.甲板上的战舰:统计战舰头(左上角)——附Py一行版
LeetCode 0419.甲板上的战舰:统计战舰头(左上角)——附Py一行版给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 board 上放置的 战舰 的数量。战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状建造,其中 k 可以是任意大小。两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。原创 2024-06-11 12:38:28 · 1019 阅读 · 0 评论 -
LeetCode 0881.救生艇:排序+双指针(大人掌船,能捎就捎)
LeetCode 0881.救生艇:排序+双指针(大人掌船,能捎就捎)给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回 承载所有人所需的最小船数 。原创 2024-06-10 21:19:25 · 664 阅读 · 0 评论 -
2938.区分黑球与白球:黑球要与后面每个白球交换一次
2938.区分黑球与白球:黑球要与后面每个白球交换一次桌子上有 n 个球,每个球的颜色不是黑色,就是白色。给你一个长度为 n 、下标从 0 开始的二进制字符串 s,其中 1 和 0 分别代表黑色和白色的球。在每一步中,你可以选择两个相邻的球并交换它们。返回「将所有黑色球都移到右侧,所有白色球都移到左侧所需的 最小步数」。原创 2024-06-06 22:58:03 · 699 阅读 · 0 评论 -
LeetCode 3067.在带权树网络中统计可连接服务器对数目:枚举根
LeetCode 3067.在带权树网络中统计可连接服务器对数目:枚举根给你一棵无根带权树,树中总共有 n 个节点,分别表示 n 个服务器,服务器从 0 到 n - 1 编号。同时给你一个数组 edges ,其中 edges[i] = [ai, bi, weighti] 表示节点 ai 和 bi 之间有一条双向边,边的权值为 weighti 。再给你一个整数 signalSpeed 。如果两个服务器 a ,b 和 c 满足以下条件,那么我们称服务器 a 和 b 是通过服务器 c 可连接的 :a原创 2024-06-04 23:01:15 · 1300 阅读 · 0 评论 -
LeetCode 575.分糖果:min(type, size/2)
LeetCode 575.分糖果:min(type, size/2)Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到原创 2024-06-02 10:14:56 · 758 阅读 · 0 评论 -
LeetCode 2928.给小朋友们分糖果 I:Java提交的运行时间超过了61%的用户
LeetCode 2928.给小朋友们分糖果 I:Java提交的运行时间超过了61%的用户给你两个正整数 n 和 limit 。请你将 n 颗糖果分给 3 位小朋友,确保没有任何小朋友得到超过 limit 颗糖果,请你返回满足此条件下的 总方案数 。原创 2024-06-01 22:29:57 · 837 阅读 · 0 评论 -
LeetCode 2965.找出缺失和重复的数字:小数据?我选择暴力(附优化方法清单:O(1)空间方法×3)
【LetMeFly】2965.找出缺失和重复的数字:小数据?我选择暴力(附优化方法清单:O(1)空间方法×3)给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。任务是找出重复的数字a 和缺失的数字 b 。返回一个下标从 0 开始、长度为 2 的整数数组 ans ,其中 ans[0] 等于 a ,ans[1] 等于 b 。原创 2024-05-31 17:17:25 · 1097 阅读 · 0 评论 -
LeetCode 2982.找出出现至少三次的最长特殊子字符串 II:计数O(n)
LeetCode 2982.找出出现至少三次的最长特殊子字符串 II:计数O(n)给你一个仅由小写英文字母组成的字符串 s 。如果一个字符串仅由单一字符组成,那么它被称为 特殊 字符串。例如,字符串 "abc" 不是特殊字符串,而字符串 "ddd"、"zz" 和 "f" 是特殊字符串。返回在 s 中出现 至少三次 的 最长特殊子字符串 的长度,如果不存在出现至少三次的特殊子字符串,则返回 -1 。子字符串 是字符串中的一个连续 非空 字符序列。原创 2024-05-30 21:19:49 · 618 阅读 · 0 评论 -
LeetCode 2951.找出峰值:模拟(遍历)
LeetCode 2951.找出峰值:模拟(遍历)给你一个下标从 0 开始的数组 mountain 。你的任务是找出数组 mountain 中的所有 峰值。以数组形式返回给定数组中 峰值 的下标,顺序不限 。注意:峰值 是指一个严格大于其相邻元素的元素。数组的第一个和最后一个元素 不 是峰值。原创 2024-05-28 22:33:11 · 1066 阅读 · 0 评论 -
LeetCode 2028.找出缺失的观测数据:a个骰子和为b?
LeetCode 2028.找出缺失的观测数据:a个骰子和为b?现有一份 n + m 次投掷单个 六面 骰子的观测数据,骰子的每个面从 1 到 6 编号。观测数据中缺失了 n 份,你手上只拿到剩余 m 次投掷的数据。幸好你有之前计算过的这 n + m 次投掷数据的 平均值 。给你一个长度为 m 的整数数组 rolls ,其中 rolls[i] 是第 i 次观测的值。同时给你两个整数 mean 和 n 。返回一个长度为 n 的数组,包含所有缺失的观测数据,且满足这 n + m 次投掷的 平均值 是原创 2024-05-27 22:09:38 · 1011 阅读 · 0 评论 -
LeetCode 1738.找出第 K 大的异或坐标值:二维前缀和——五彩斑斓的题解
LeetCode 1738.找出第 K 大的异或坐标值:二维前缀和给你一个二维矩阵 matrix 和一个整数 k ,矩阵大小为 m x n 由非负整数组成。矩阵中坐标 (a, b) 的 值 可由对所有满足 0原创 2024-05-26 10:41:09 · 688 阅读 · 0 评论 -
LeetCode 2903.找出满足差值条件的下标 I:暴力模拟
LeetCode 2903.找出满足差值条件的下标 I:暴力模拟给你一个下标从 0 开始、长度为 n 的整数数组 nums ,以及整数 indexDifference 和整数 valueDifference 。你的任务是从范围 [0, n - 1] 内找出 2 个满足下述所有条件的下标 i 和 j :abs(i - j) >= indexDifference 且abs(nums[i] - nums[j]) >= valueDifference返回整数数组 answer。如果存在满足题目要求的原创 2024-05-25 13:09:42 · 551 阅读 · 0 评论 -
LeetCode 1673.找出最具竞争力的子序列:单调栈(贪心)
LeetCode 1673.找出最具竞争力的子序列:单调栈(贪心)给你一个整数数组 nums 和一个正整数 k ,返回长度为 k 且最具 竞争力 的 nums 子序列。数组的子序列是从数组中删除一些元素(可能不删除元素)得到的序列。在子序列 a 和子序列 b 第一个不相同的位置上,如果 a 中的数字小于 b 中对应的数字,那么我们称子序列 a 比子序列 b(相同长度下)更具 竞争力 。 例如,[1,3,4] 比 [1,3,5] 更具竞争力,在第一个不相同的位置,也就是最后一个位置上, 4 小于 5原创 2024-05-24 22:10:28 · 873 阅读 · 0 评论 -
LeetCode 2225.找出输掉零场或一场比赛的玩家:哈希表计数
LeetCode 2225.找出输掉零场或一场比赛的玩家:哈希表计数给你一个整数数组 matches 其中 matches[i] = [winneri, loseri] 表示在一场比赛中 winneri 击败了 loseri 。返回一个长度为 2 的列表 answer :answer[0] 是所有 没有 输掉任何比赛的玩家列表。answer[1] 是所有恰好输掉 一场 比赛的玩家列表。两个列表中的值都应该按 递增 顺序返回。注意:只考虑那些参与 至少一场 比赛的玩家。生成的测试用例保原创 2024-05-22 20:34:02 · 938 阅读 · 2 评论 -
LeetCode 2769.找出最大的可达成数字:数学——一个猪脑可以不过载的题
LeetCode 2769.找出最大的可达成数字:数学——一个猪脑可以不过载的题给你两个整数 num 和 t 。如果整数 x 可以在执行下述操作不超过 t 次的情况下变为与 num 相等,则称其为 可达成数字 :每次操作将 x 的值增加或减少 1 ,同时可以选择将 num 的值增加或减少 1 。返回所有可达成数字中的最大值。可以证明至少存在一个可达成数字。原创 2024-05-21 20:49:10 · 1044 阅读 · 0 评论 -
LeetCode 1542.找出最长的超赞子字符串:前缀异或和(位运算)
LeetCode 1542.找出最长的超赞子字符串:前缀异或和(位运算)给你一个字符串 s 。请返回 s 中最长的 超赞子字符串 的长度。「超赞子字符串」需满足满足下述两个条件:该字符串是 s 的一个非空子字符串进行任意次数的字符交换后,该字符串可以变成一个回文字符串原创 2024-05-20 23:59:30 · 748 阅读 · 0 评论 -
LeetCode 1535.找出数组游戏的赢家:脑筋急转弯(部分模拟)
LeetCode 1535.找出数组游戏的赢家:脑筋急转弯(部分模拟)给你一个由 不同 整数组成的整数数组 arr 和一个整数 k 。每回合游戏都在数组的前两个元素(即 arr[0] 和 arr[1] )之间进行。比较 arr[0] 与 arr[1] 的大小,较大的整数将会取得这一回合的胜利并保留在位置 0 ,较小的整数移至数组的末尾。当一个整数赢得 k 个连续回合时,游戏结束,该整数就是比赛的 赢家 。返回赢得比赛的整数。题目数据 保证 游戏存在赢家。原创 2024-05-19 11:24:34 · 816 阅读 · 0 评论 -
LeetCode 2644.找出可整除性得分最大的整数:暴力模拟(两层循环)
LeetCode 2644.找出可整除性得分最大的整数:暴力模拟(两层循环)给你两个下标从 0 开始的整数数组 nums 和 divisors 。divisors[i] 的 可整除性得分 等于满足 nums[j] 能被 divisors[i] 整除的下标 j 的数量。返回 可整除性得分 最大的整数 divisors[i] 。如果有多个整数具有最大得分,则返回数值最小的一个。原创 2024-05-18 15:56:15 · 918 阅读 · 0 评论 -
LeetCode 0826.安排工作以达到最大收益:排序 + 双指针
LeetCode 0826.安排工作以达到最大收益:排序 + 双指针你有 n 个工作和 m 个工人。给定三个数组: difficulty, profit 和 worker ,其中:difficulty[i] 表示第 i 个工作的难度,profit[i] 表示第 i 个工作的收益。worker[i] 是第 i 个工人的能力,即该工人只能完成难度小于等于 worker[i] 的工作。每个工人 最多 只能安排 一个 工作,但是一个工作可以 完成多次 。举个例子,如果 3 个工人都尝试完成一份报酬为原创 2024-05-17 17:19:48 · 842 阅读 · 0 评论