
Leetcode
文章平均质量分 64
EagleEyeKestrel
2019-2020年度中国睡觉甲级联赛冠军
展开
-
Leetcode P1862 向下取整数对和
Leetcode P1862 向下取整数对和给你一个整数数组 nums ,请你返回所有下标对 0 <= i, j < nums.length 的 floor(nums[i] / nums[j]) 结果之和。由于答案可能会很大,请你返回答案对10^9 + 7 取余 的结果。函数 floor() 返回输入数字的整数部分。示例:输入:nums = [2,5,9]输出:10解释:floor(2 / 5) = floor(2 / 9) = floor(5 / 9) = 0floor(2 /原创 2021-06-13 15:52:35 · 272 阅读 · 2 评论 -
Leetcode 5752. 子数组最小乘积的最大值
Letcode 5752. 子数组最小乘积的最大值一个数组的 最小乘积 定义为这个数组中 最小值 乘以 数组的 和 。比方说,数组 [3,2,5] (最小值是 2)的最小乘积为 2 * (3+2+5) = 2 * 10 = 20 。给你一个正整数数组 nums ,请你返回 nums 任意 非空子数组 的最小乘积 的 最大值 。由于答案可能很大,请你返回答案对 10^9 + 7 取余 的结果。请注意,最小乘积的最大值考虑的是取余操作 之前 的结果。题目保证最小乘积的最大值在 不取余 的情况下可以用原创 2021-05-09 16:31:15 · 347 阅读 · 0 评论 -
Leetcode P5748 包含每个查询的最小区间
Leetcode P5748 包含每个查询的最小区间给你一个二维整数数组 intervals ,其中 intervals[i] = [left_i, right_i] 表示第 i 个区间开始于 left_i 、结束于 right_i(包含两侧取值,闭区间)。区间的 长度 定义为区间中包含的整数数目,更正式地表达是 right_i - left_i + 1 。再给你一个整数数组 queries 。第 j 个查询的答案是满足 left_i <= queries[j] <= right_i 的 长原创 2021-05-03 01:40:02 · 227 阅读 · 0 评论 -
Leetcode P1815 得到新鲜甜甜圈的最多组数
Leetcode P1815 得到新鲜甜甜圈的最多组数有一个甜甜圈商店,每批次都烤 batchSize 个甜甜圈。这个店铺有个规则,就是在烤一批新的甜甜圈时,之前 所有 甜甜圈都必须已经全部销售完毕。给你一个整数 batchSize 和一个整数数组 groups ,数组中的每个整数都代表一批前来购买甜甜圈的顾客,其中 groups[i] 表示这一批顾客的人数。每一位顾客都恰好只要一个甜甜圈。当有一批顾客来到商店时,他们所有人都必须在下一批顾客来之前购买完甜甜圈。如果一批顾客中第一位顾客得到的甜甜圈不是上原创 2021-04-05 19:28:27 · 301 阅读 · 0 评论 -
Leetcode P1787. 使所有区间的异或结果为零
Leetcode P1787. 使所有区间的异或结果为零给你一个整数数组 nums 和一个整数 k 。区间 [left, right](left <= right)的 异或结果 是对下标位于 left 和 right(包括 left 和 right )之间所有元素进行 XOR 运算的结果:nums[left] XOR nums[left+1] XOR … XOR nums[right] 。返回数组中 要更改的最小元素数 ,以使所有长度为 k 的区间异或结果等于零。示例 1:输入:原创 2021-03-14 22:01:00 · 260 阅读 · 0 评论 -
Leetcode P1782 统计点对的数目
Leetcode P1782 统计点对的数目给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成,其中 $edges[i] = [u_i, v_i] $表示 uiu_iui 和 viv_ivi 之间有一条无向边。同时给你一个代表查询的整数数组 queries 。第 j 个查询的答案是满足如下条件的点对 (a, b) 的数目:a < bcnt 是与 a 或者 b 相连的边的数目,且 cnt 严格大于 queries[j] 。请你返回一个数组 answers ,原创 2021-03-09 23:43:53 · 250 阅读 · 0 评论 -
Leetcode P1755 最接近目标值的子序列和
Leetcode P1755 最接近目标值的子序列和给你一个整数数组 nums 和一个目标值 goal 。你需要从 nums 中选出一个子序列,使子序列元素总和最接近 goal 。也就是说,如果子序列元素和为 sum ,你需要 最小化绝对差 abs(sum - goal) 。返回 abs(sum - goal) 可能的 最小值 。注意,数组的子序列是通过移除原始数组中的某些元素(可能全部或无)而形成的数组。示例1:输入:nums = [5,-7,3,5], goal = 6输出:0解释:选择原创 2021-02-08 17:10:31 · 423 阅读 · 0 评论 -
Leetcode P1330. 翻转子数组得到最大的数组值
Leetcode P1330. 翻转子数组得到最大的数组值给你一个整数数组 nums 。「数组值」定义为所有满足 0 <= i < nums.length-1 的 |nums[i]-nums[i+1]| 的和。你可以选择给定数组的任意子数组,并将该子数组翻转。但你只能执行这个操作 一次 。请你找到可行的最大 数组值 。示例 1:输入:nums = [2,3,1,5,4]输出:10解释:通过翻转子数组 [3,1,5] ,数组变成 [2,5,1,3,4] ,数组值为 10 。示例原创 2021-01-11 16:52:57 · 221 阅读 · 0 评论 -
Leetcode P5624 得到连续 K 个 1 的最少相邻交换次数
Leetcode P5624 得到连续 K 个 1 的最少相邻交换次数给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1 。每一次移动,你可以选择 相邻 两个数字并将它们交换。请你返回使 nums 中包含 k 个 连续 1 的 最少 交换次数。示例 1:输入:nums = [1,0,0,1,0,1], k = 2输出:1解释:在第一次操作时,nums 可以变成 [1,0,0,0,1,1] 得到连续两个 1 。示例 2:输入:nums = [1,0,0,0,0,0,原创 2020-12-27 22:56:35 · 390 阅读 · 1 评论 -
Leetcode 5632. 检查边长度限制的路径是否存在
Leetcode P5632 检查边长度限制的路径是否存在给你一个 n 个点组成的无向图边集 edgeListedgeListedgeList ,其中 edgeList[i]=[ui,vi,disi]edgeList[i] = [u_i, v_i, dis_i]edgeList[i]=[ui,vi,disi] 表示点 uiu_iui 和点 viv_ivi 之间有一条长度为 disidis_idisi 的边。请注意,两个点之间可能有 超过一条边 。给你一个查询数组queriesqueriesq原创 2020-12-21 00:25:42 · 178 阅读 · 0 评论 -
【Leetcode】P5612 从仓库到码头运输箱子
Leetcode P5612 从仓库到码头运输箱子你有一辆货运卡车,你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。给你一个箱子数组 boxes 和三个整数 portsCount, maxBoxes 和 maxWeight ,其中 boxesi=[portsi,weighti]boxes_i = [ports_i, weight_i]boxesi=[portsi,weighti]。ports_i 表示第 i 个箱子需要送达的码头,原创 2020-12-13 18:39:11 · 994 阅读 · 0 评论 -
【Leetcode】P5616 数组的最小偏移量
Leetcode P5616 数组的最小偏移量给你一个由 n 个正整数组成的数组 nums 。你可以对数组的任意元素执行任意次数的两类操作:如果元素是 偶数 ,除以 2。例如,如果数组是 [1,2,3,4] ,那么你可以对最后一 个元素执行此操作,使其变成 [1,2,3,2]如果元素是 奇数 ,乘上 2。例如,如果数组是 [1,2,3,4] ,那么你可以对第一个元素执行此操作,使其变成 [2,2,3,4]数组的 偏移量 是数组中任意两个元素之间的 最大差值 。返回数组在执行某些操作之后可以拥有原创 2020-11-30 01:05:03 · 573 阅读 · 0 评论 -
【Leetcode】P5530 奇妙序列
Leetcode P5530 奇妙序列请你实现三个 API append,addAll 和 multAll 来实现奇妙序列。请实现 Fancy 类 :Fancy() 初始化一个空序列对象。void append(val) 将整数 val 添加在序列末尾。void addAll(inc) 将所有序列中的现有数值都增加 inc 。void multAll(m) 将序列中的所有现有数值都乘以整数 m 。int getIndex(idx) 得到下标为 idx 处的数值(下标从 0 开始),并将结果对原创 2020-10-18 20:18:48 · 372 阅读 · 1 评论 -
【Leetcode】P1409 查询带键的排列
Leetcode P1409 查询带键的排列给你一个待查数组 queries ,数组中的元素为 1 到 m 之间的正整数。 请你根据以下规则处理所有待查项 queries[i](从 i=0 到 i=queries.length-1):一开始,排列 P=[1,2,3,…,m]。对于当前的 i ,请你找出待查项 queries[i] 在排列 P 中的位置(下标从 0 开始),然后将其从原位置移动到排列 P 的起始位置(即下标为 0 处)。注意, queries[i] 在 P 中的位置就是 queries原创 2020-10-10 23:23:57 · 126 阅读 · 0 评论 -
【Leetcode】P5533 使整数变为 0 的最少操作次数
Leetcode P5533 使整数变为0的最少操作次数给你一个整数 n,你需要重复执行多次下述操作将其转换为 0 :翻转 n 的二进制表示中最右侧位(第 0 位)。如果第 (i-1) 位为 1 且从第 (i-2) 位到第 0 位都为 0,则翻转 n 的二进制表示中的第 i 位。返回将 n 转换为 0 的最小操作次数。示例 1:输入:n = 0输出:0示例 2:输入:n = 3输出:2解释:3 的二进制表示为 "11""11" -> "01" ,执行的是第 2 种操作,因原创 2020-10-04 22:04:41 · 1119 阅读 · 0 评论 -
【Leetcode】P5518 给定行和列的和求可行矩阵
Leetcode P5518 给定行和列的和求可行矩阵给你两个非负整数数组 rowSum 和 colSum ,其中 rowSum[i] 是二维矩阵中第 i 行元素的和, colSum[j] 是第 j 列元素的和。换言之你不知道矩阵里的每个元素,但是你知道每一行和每一列的和。请找到大小为 rowSum.length x colSum.length 的任意 非负整数 矩阵,且该矩阵满足 rowSum 和 colSum 的要求。请你返回任意一个满足题目要求的二维矩阵,题目保证存在 至少一个 可行矩阵。示例原创 2020-10-04 00:10:07 · 288 阅读 · 0 评论 -
【Leetcode】P137 只出现一次的数字II
Leetcode P137 只出现一次的数字II给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99这么简单的题居然没想到。。一直在想异或,然后想到partition,想偏了。其实把每个数想象成32个bit,那么每一位,假设只出现一次的数是x,如果x在那一位原创 2020-09-30 00:00:10 · 75 阅读 · 0 评论 -
【Leetcode】P5506 奇怪的打印机II
Leetcode P5506 奇怪的打印机II给你一个奇怪的打印机,它有如下两个特殊的打印规则:每一次操作时,打印机会用同一种颜色打印一个矩形的形状,每次打印会覆盖矩形对应格子里原本的颜色。一旦矩形根据上面的规则使用了一种颜色,那么 相同的颜色不能再被使用 。给你一个初始没有颜色的 m x n 的矩形 targetGrid ,其中 targetGrid[row][col] 是位置 (row, col) 的颜色。如果你能按照上述规则打印出矩形 targetGrid ,请你返回 true ,否则返回原创 2020-09-20 01:14:57 · 190 阅读 · 0 评论 -
【Leetcode】P148 排序链表
Leetcode P148 排序链表在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例1:输入: 4->2->1->3输出: 1->2->3->4示例2:输入: -1->5->3->4->0输出: -1->0->3->4->5nlgn的时间复杂度容易实现,归并就可以了。但通常我们的归并排序都是用递归实现,是存在O(logn)O(\log n)O(logn)的空间复杂度的。所以原创 2020-09-18 00:10:04 · 109 阅读 · 0 评论 -
【Leetcode】Weekly 206 检查字符串是否可以通过排序子字符串得到另一个字符串
Leetcode Weekly 206 检查字符串是否可以通过排序子字符串得到另一个字符串给你两个字符串 s 和 t ,请你通过若干次以下操作将字符串 s 转化成字符串 t :选择 s 中一个 非空 子字符串并将它包含的字符就地 升序 排序。比方说,对下划线所示的子字符串进行操作可以由 “14234” 得到 “12344” 。如果可以将字符串 s 变成 t ,返回 true 。否则,返回 false 。一个 子字符串 定义为一个字符串中连续的若干字符。示例1:输入:s = "84532", t原创 2020-09-13 15:52:36 · 324 阅读 · 0 评论 -
【Leetcode】周赛203 查找大小为M的最新分组
查找大小为M的最新分组这是第203场周赛的第三题,也可以说是一道比较有区分度的题。快的人很快就做完了,慢的人迟迟没有思路。我自己也是卡在了这道题上,没有想到什么快捷的方法,到四十几分钟才写出来,然后调bug花了十几分钟,直接心态给搞炸了。题目是这样的:给你一个数组 arr ,该数组表示一个从 1 到 n 的数字排列。有一个长度为 n 的二进制字符串,该字符串上的所有位最初都设置为 0 。在从 1 到 n 的每个步骤 i 中(假设二进制字符串和 arr 都是从 1 开始索引的情况下),二进制字符串上位于原创 2020-08-24 00:59:27 · 158 阅读 · 0 评论 -
【Leetcode】双周赛33 二维网格图中探测环
二维网格图中探测环给你一个二维字符网格数组 grid ,大小为 m x n ,你需要检查 grid 中是否存在 相同值 形成的环。一个环是一条开始和结束于同一个格子的长度 大于等于 4 的路径。对于一个给定的格子,你可以移动到它上、下、左、右四个方向相邻的格子之一,可以移动的前提是这两个格子有 相同的值 。同时,你也不能回到上一次移动时所在的格子。比方说,环 (1, 1) -> (1, 2) -> (1, 1) 是不合法的,因为从 (1, 2) 移动到 (1, 1) 回到了上一次移动时的原创 2020-08-23 01:10:08 · 252 阅读 · 3 评论 -
【Leetcode】Weekly 202
Leetcode 第202场周赛这一次是三七互娱周赛,前段时间好久没打了,今天回来打了一把,感觉还行,整体题目比较简单,打了个40名,但是还是有失误,本可以更好。存在连续三个奇数的数组给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。示例1:输入:arr = [2,6,4,1]输出:false解释:不存在连续三个元素都是奇数的情况。示例2:输入:arr = [1,2,34,3,4,5,7,23,12]输出原创 2020-08-16 13:57:27 · 157 阅读 · 0 评论 -
Leetcode Weekly 194 保证文件名唯一
Leetcode Weekly 194 保证文件名唯一这次是好未来周赛,结果却发挥的很不好,主要是卡在了第二题上,再加上有其他的ddl就没有继续了。这里记录一下第二题。保证文件名唯一给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以 (k) 的形式为新文件夹的文件名添加后缀,其中 k 是能保证文件名唯一的 最小正整数 。返原创 2020-06-22 01:34:30 · 149 阅读 · 0 评论