![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 63
算法
专注如一
........
展开
-
Leetcode 第 126 场双周赛 Problem D 求出所有子序列的能量和(Java + 数学 + 01背包变种)
【代码】Leetcode 第 126 场双周赛 Problem D 求出所有子序列的能量和(Java + 数学 + 01背包变种)原创 2024-03-17 02:17:52 · 846 阅读 · 0 评论 -
Leetcode 第 126 场双周赛 Problem C 替换字符串中的问号使分数最小(Java + 排序 + 贪心)
【代码】Leetcode 第 126 场双周赛 Problem C 替换字符串中的问号使分数最小(Java + 排序 + 贪心)原创 2024-03-17 02:15:15 · 469 阅读 · 0 评论 -
Leetcode 第 124 场双周赛 Problem D 修改数组后最大化数组中的连续元素数目(Java + 模拟(分段/区间))
【代码】Leetcode 第 124 场双周赛 Problem D 修改数组后最大化数组中的连续元素数目(Java + 模拟(分段/区间))原创 2024-02-18 01:57:20 · 1036 阅读 · 0 评论 -
Leetcode 第 380 场周赛 Problem C 价值和小于等于 K 的最大数字(Java + 二分答案 + 规律)
【代码】Leetcode 第 380 场周赛 Problem C 价值和小于等于 K 的最大数字(Java + 二分答案 + 规律)原创 2024-01-15 06:01:26 · 1012 阅读 · 0 评论 -
Leetcode 第 121 场双周赛 Problem D 统计强大整数的数目(Java + 记忆化搜索的数位 DP 模板 + 特判)
【代码】Leetcode 第 121 场双周赛 Problem D 统计强大整数的数目(Java + 记忆化搜索的数位 DP 模板 + 特判)原创 2024-01-07 18:42:44 · 993 阅读 · 0 评论 -
Leetcode 第 378 场双周赛 Problem D 回文串重新排列查询(Java + 区间相交关系 + 前缀和)
【代码】Leetcode 第 378 场双周赛 Problem D 回文串重新排列查询(Java + 区间相交关系 + 前缀和)原创 2023-12-31 20:04:20 · 865 阅读 · 0 评论 -
Leetcode 1349. 参加考试的最大学生数(Java + 按行状压暴力 + DP)
【代码】Leetcode 1349. 参加考试的最大学生数(Java + 按行状压暴力 + DP)原创 2023-12-26 02:44:44 · 894 阅读 · 0 评论 -
Leetcode 第 120 场双周赛 Problem C 统计移除递增子数组的数目 II(Java + 双指针 + 前缀和)
【代码】Leetcode 第 120 场双周赛 Problem C 统计移除递增子数组的数目 II(Java + 双指针 + 前缀和)原创 2023-12-24 00:54:43 · 491 阅读 · 0 评论 -
Leetcode 1901. 寻找峰值 II(Java + 列最大值 + 二分)
【代码】Leetcode 1901. 寻找峰值 II(Java + 列最大值 + 二分)原创 2023-12-19 23:38:01 · 491 阅读 · 0 评论 -
Leetcode 162. 寻找峰值(Java + 二分)
【代码】Leetcode 162. 寻找峰值(Java + 二分)原创 2023-12-19 00:10:13 · 424 阅读 · 0 评论 -
Leetcode 2276. 统计区间中的整数数目(Java + TreeMap 区间合并)
【代码】Leetcode 2276. 统计区间中的整数数目(Java + TreeMap 区间合并)原创 2023-12-16 16:00:22 · 126 阅读 · 0 评论 -
Leetcode 2132. 用邮票贴满网格图(Java + 两次一维前缀和 + 二维差分)
Leetcode 2132. 用邮票贴满网格图(Java + 两次一维前缀和 + 二维差分)原创 2023-12-14 02:18:27 · 109 阅读 · 0 评论 -
Leetcode 2477. 到达首都的最少油耗(建图 + DFS 一次遍历)
Leetcode 2477. 到达首都的最少油耗(建图 + DFS 一次遍历)题目给你一棵 n 个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从 0 到 n - 1 ,且恰好有 n - 1 条路。0 是首都。给你一个二维整数数组 roads ,其中 roads[i] = [ai, bi] ,表示城市 ai 和 bi 之间有一条 双向路 。原创 2023-12-05 15:04:39 · 93 阅读 · 0 评论 -
Leetcode 2454. 下一个更大元素 IV
【代码】Leetcode 2454. 下一个更大元素 IV。原创 2023-12-13 08:34:35 · 108 阅读 · 0 评论 -
Leetcode 1466. 重新规划路线(两种思路:正难则反 DFS + 无向图转有向图 / DFS 无向建图 + 设定权值 + 反向遍历)
Leetcode 1466. 重新规划路线(两种思路:正难则反 DFS + 无向图转有向图 / DFS 无向建图 + 设定权值 + 反向遍历)原创 2023-12-07 02:23:04 · 106 阅读 · 0 评论 -
Leetcode 2646. 最小化旅行的价格总和(暴力 DFS + 树形 DP)
【代码】Leetcode 2646. 最小化旅行的价格总和(暴力 DFS + 树形 DP)原创 2023-12-06 21:10:15 · 134 阅读 · 0 评论 -
Leetcode 第 374 场双周赛 Problem D 100146. 统计感冒序列的数目(组合数学+阶乘+逆元)
Leetcode 第 374 场双周赛 Problem D 100146. 统计感冒序列的数目(组合数学+阶乘+逆元)题目给你一个整数 n 和一个下标从 0 开始的整数数组 sick ,数组按 升序 排序。有 n 位小朋友站成一排,按顺序编号为 0 到 n - 1 。数组 sick 包含一开始得了感冒的小朋友的位置。如果位置为 i 的小朋友得了感冒,他会传染给下标为 i - 1 或者 i + 1 的小朋友,前提 是被传染的小朋友存在且还没有得感冒。每一秒中, 至多一位 还没感冒的小朋友会被传染。原创 2023-12-03 23:31:58 · 156 阅读 · 0 评论 -
Leetcode 第 110 场双周赛 Problem D 2809. 使数组和小于等于 x 的最少时间(DP+贪心+正难则反)
Leetcode 第 110 场双周赛 Problem D 2809. 使数组和小于等于 x 的最少时间(DP 好题)题目给你两个长度相等下标从 0 开始的整数数组 nums1 和 nums2 。每一秒,对于所有下标 0原创 2023-12-02 17:10:27 · 176 阅读 · 0 评论 -
Leetcode 第 356 场周赛 Problem D 2801. 统计范围内的步进数字数目(数位 DP,递推写法)
Leetcode 第 356 场周赛 Problem D 2801. 统计范围内的步进数字数目(数位 DP,递推写法)题目给你两个正整数 low 和 high ,都用字符串表示,请你统计闭区间 [low, high] 内的 步进数字 数目。如果一个整数相邻数位之间差的绝对值都 恰好 是 1 ,那么这个数字被称为 步进数字 。原创 2023-12-01 17:17:28 · 127 阅读 · 0 评论 -
Leetcode 2661. 找出叠涂元素
* Leetcode 2661. 找出叠涂元素* 题目 * 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。 * 从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。 * 请你找出 arr 中在 mat 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 i 。原创 2023-12-01 16:43:16 · 164 阅读 · 0 评论 -
Leetcode 第 355 场周赛 Problem C 长度递增组的最大数目(二分 + 贪心)
Leetcode 第 355 场周赛 Problem C 长度递增组的最大数目(二分 + 贪心)题目给你一个下标从 0 开始、长度为 n 的数组 usageLimits 。你的任务是使用从 0 到 n - 1 的数字创建若干组,并确保每个数字 i 在 所有组 中使用的次数总共不超过 usageLimits[i] 次。此外,还必须满足以下条件:每个组必须由 不同 的数字组成,也就是说,单个组内不能存在重复的数字。每个组(除了第一个)的长度必须 严格大于 前一个组。在满足所有条件的情况下,以整数形式原创 2023-07-23 17:58:50 · 175 阅读 · 0 评论 -
Leetcode 第 109 场双周赛 Problem D 将一个数字表示成幂的和的方案数(dfs+dp、01背包)
Leetcode 第 109 场双周赛 Problem D 将一个数字表示成幂的和的方案数(dfs+dp、01背包)题目给你两个 正 整数 n 和 x 。请你返回将 n 表示成一些 互不相同 正整数的 x 次幂之和的方案数。换句话说,你需要返回互不相同整数 [n1, n2, …, nk] 的集合数目,满足 n = n1 ^ x + n2 ^ x + … + nk ^ x 。由于答案可能非常大,请你将它对 10 ^ 9 + 7 取余后返回。比方说,n = 160 且 x = 3 ,一个表示 n 的原创 2023-07-23 02:27:53 · 112 阅读 · 0 评论 -
Leetcode 第 354 场周赛 Problem D 最长合法子字符串的长度(Trie + 枚举最远距离)
Leetcode 第 354 场周赛 Problem D 最长合法子字符串的长度(Trie + 枚举最远距离)题目给你一个字符串 word 和一个字符串数组 forbidden 。如果一个字符串不包含 forbidden 中的任何字符串,我们称这个字符串是 合法 的。请你返回字符串 word 的一个 最长合法子字符串 的长度。子字符串 指的是一个字符串中一段连续的字符,它可以为空。1原创 2023-07-16 15:10:32 · 404 阅读 · 0 评论 -
Leetcode 第 108 场双周赛 Problem D 黑格子的数目
Leetcode 第 108 场双周赛 Problem D 黑格子的数目题目给你两个整数 m 和 n ,表示一个下标从 0 开始的 m x n 的网格图。给你一个下标从 0 开始的二维整数矩阵 coordinates ,其中 coordinates[i] = [x, y] 表示坐标为 [x, y] 的格子是 黑色的 ,所有没出现在 coordinates 中的格子都是 白色的。一个块定义为网格图中 2 x 2 的一个子矩阵。更正式的,对于左上角格子为 [x, y] 的块,其中 0原创 2023-07-09 04:22:50 · 229 阅读 · 0 评论 -
Leetcode 第 108 场双周赛 Problem C 将字符串分割为最少的美丽子字符串(动态规划)
Leetcode 第 108 场双周赛 Problem C 将字符串分割为最少的美丽子字符串(动态规划)题目给你一个二进制字符串 s ,你需要将字符串分割成一个或者多个 子字符串 ,使每个子字符串都是 美丽 的。如果一个字符串满足以下条件,我们称它是 美丽 的:它不包含前导 0 。它是 5 的幂的 二进制 表示。请你返回分割后的子字符串的 最少 数目。如果无法将字符串 s 分割成美丽子字符串,请你返回 -1 。子字符串是一个字符串中一段连续的字符序列。1原创 2023-07-09 04:19:31 · 645 阅读 · 0 评论 -
Leetcode 第 108 场双周赛 Problem A 最长交替子序列(O(n)解法)
Leetcode 第 108 场双周赛 Problem A 最长交替子序列(O(n)解法)题目给你一个下标从 0 开始的整数数组 nums 。如果 nums 中长度为 m 的子数组 s 满足以下条件,我们称它是一个交替子序列:m 大于 1 。s1 = s0 + 1 。下标从 0 开始的子数组 s 与数组 [s0, s1, s0, s1,…,s(m-1) % 2] 一样。也就是说,s1 - s0 = 1 ,s2 - s1 = -1 ,s3 - s2 = 1 ,s4 - s3 = -1,以此类推,直到原创 2023-07-09 04:15:51 · 329 阅读 · 0 评论 -
Leetcode 233. 数字 1 的个数
Leetcode 233. 数字 1 的个数题目给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。0原创 2023-06-27 14:54:35 · 404 阅读 · 0 评论 -
Leetcode 第 351 场周赛 Problem B 得到整数零需要执行的最少操作数
Leetcode 第 351 场周赛 Problem B 得到整数零需要执行的最少操作数题目给你两个整数:num1 和 num2 。在一步操作中,你需要从范围 [0, 60] 中选出一个整数 i ,并从 num1 减去 2i + num2 。请你计算,要想使 num1 等于 0 需要执行的最少操作数,并以整数形式返回。如果无法使 num1 等于 0 ,返回 -1 。1原创 2023-06-25 14:14:16 · 300 阅读 · 1 评论 -
Leetcode 第 350 场周赛 Problem C 特别的排列(状压 DP + 记忆化搜索)
Leetcode 第 350 场周赛 Problem C 特别的排列题目给你一个下标从 0 开始的整数数组 nums ,它包含 n 个 互不相同 的正整数。如果 nums 的一个排列满足以下条件,我们称它是一个特别的排列:对于 0原创 2023-06-18 22:14:55 · 713 阅读 · 0 评论 -
Leetcode 6426. 移动机器人
Leetcode 6426. 移动机器人题目有一些机器人分布在一条无限长的数轴上,他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时,它们以每秒钟一单位的速度开始移动。给你一个字符串 s ,每个字符按顺序分别表示每个机器人移动的方向。‘L’ 表示机器人往左或者数轴的负方向移动,‘R’ 表示机器人往右或者数轴的正方向移动。原创 2023-06-11 20:15:40 · 1100 阅读 · 0 评论 -
改变正子数组
二分 + dfs + 动态规划原创 2023-06-10 23:30:07 · 334 阅读 · 0 评论 -
Leetcode 第 345 场周赛 Problem D 统计完全连通分量的数量
Leetcode 第 345 场周赛 Problem D 统计完全连通分量的数量题目给你一个整数 n 。现有一个包含 n 个顶点的 无向 图,顶点按从 0 到 n - 1 编号。给你一个二维整数数组 edges 其中 edges[i] = [ai, bi] 表示顶点 ai 和 bi 之间存在一条 无向 边。返回图中 完全连通分量 的数量。如果在子图中任意两个顶点之间都存在路径,并且子图中没有任何一个顶点与子图外部的顶点共享边,则称其为 连通分量 。如果连通分量中每对节点之间都存在一条边,则称其为原创 2023-05-14 14:51:59 · 327 阅读 · 1 评论 -
Leetcode 第 338 场周赛 Problem C 使数组元素全部相等的最少操作次数
Leetcode 第 338 场周赛 Problem C 使数组元素全部相等的最少操作次数* 题目: * 给你一个正整数数组 nums 。 * 同时给你一个长度为 m 的整数数组 queries 。第 i 个查询中,你需要将 nums 中所有元素变成 queries[i] 。你可以执行以下操作 任意 次: * 将数组里一个元素 增大 或者 减小 1 。 * 请你返回一个长度为 m 的数组 answer ,其中 answer[i]是将 nums 中所有元素变成 queries[i] 的 最少 操作次原创 2023-03-26 14:11:01 · 320 阅读 · 0 评论 -
Leetcode 第 337 场周赛 Problem C 美丽子集的数目
Leetcode 第 337 场周赛 Problem C 美丽子集的数目* 题目: * 美丽子集的数目 * 给你一个由正整数组成的数组 nums 和一个 正 整数 k 。 * 如果 nums 的子集中,任意两个整数的绝对差均不等于 k ,则认为该子数组是一个 美丽 子集。 * 返回数组 nums 中 非空 且 美丽 的子集数目。 * nums 的子集定义为:可以经由 nums 删除某些元素(也可能不删除)得到的一个数组。只有在删除元素时选择的索引不同的情况下,两个子集才会被视作是不同的子集。原创 2023-03-19 15:42:16 · 434 阅读 · 0 评论 -
Leetcode 第 336 场周赛 Problem D 完成所有任务的最少时间
Leetcode 第 336 场周赛 Problem D 完成所有任务的最少时间题目: 2589. 完成所有任务的最少时间 你有一台电脑,它可以 同时 运行无数个任务。给你一个二维整数数组 tasks ,其中 tasks[i] = [starti, endi, durationi] 表示第 i 个任务需要在 闭区间 时间段 [starti, endi] 内运行 durationi 个整数时间点(但不需要连续)。 当电脑需要运行任务时,你可以打开电脑,如果空闲时,你可以将电脑关闭。原创 2023-03-13 23:59:17 · 194 阅读 · 0 评论 -
Leetcode 第 336 场周赛 Problem C 统计美丽子数组数目
Leetcode 第 336 场周赛 Problem C 统计美丽子数组数目题目: 6317. 统计美丽子数组数目 给你一个下标从 0 开始的整数数组nums 。每次操作中,你可以: 选择两个满足 0原创 2023-03-12 13:01:05 · 245 阅读 · 0 评论 -
Leetcode 912. 排序数组(归并)
分治法:先将数组分割成左右俩相等小数组,直到插入排序门槛, 插入排序:保证前 i 个元素有序,将第 i+1 个元素插入前 i 个元素中正确位置 接着回溯时,就是将俩有序数组合并成一个有序数组,开一个暂存数组,使用双指针依次将最小的元素放入暂存数组中 注意:排序俩有序数组以及直接插入时保证稳定性,俩有序数组注意边界 时间复杂度:O(nlogn)(可看做递归成一课平衡二叉树,从叶子节点开始层层排序,然后回溯到父节点排序,每次排序时间为 O(n),树高为 logn),空间复杂度:O(n)原创 2023-03-02 11:03:45 · 42 阅读 · 0 评论 -
Leetcode 912. 排序数组(快排)
首先分割成左右两个区间,将第一个元素放到中间,分割出左区间小于等于它,右区间大于等于它,此时这个元素位置就是最终结果;然后递归将左右区间、分别分割再递归,直到小于等于一个元素,快排是在"分"的时候做好排序,然后递归直接结束,没有"合"的过程 分割出中心点使用双指针算法,让左区间小于等于中心值,右区间大于等于中心值;先将第一个元素作为中心点,左指针从第二个元素开始往右,右指针从最后一个元素开始往左,左指针找到第一个大于等于中心值的位置,右指针找到第一个小于等于中心值的位置,交换两个值(相等元素会放在两边原创 2023-02-27 09:02:11 · 115 阅读 · 0 评论 -
LeetCode 319. 灯泡开关
题目: 初始时有 n 个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭第二个。 第三轮,你每三个灯泡就切换第三个灯泡的开关(即,打开变关闭,关闭变打开)。第 i 轮,你每 i 个灯泡就切换第 i 个灯泡的开关。直到第 n 轮,你只需要切换最后一个灯泡的开关。 找出并返回 n 轮后有多少个亮着的灯泡。解法:原创 2022-02-16 21:26:34 · 322 阅读 · 0 评论