![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
JustWei_
这个作者很懒,什么都没留下…
展开
-
5793. 迷宫中离入口最近的出口
title: 5793. 迷宫中离入口最近的出口date: 2021-07-11 00:41:16tags: [leetcode]5793. 迷宫中离入口最近的出口给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.' 表示)和墙(用 '+' 表示)。同时给你迷宫的入口 entrance ,用 entrance = [entrancerow, entrancecol] 表示你一开始所在格子的行和列。每一步操作,你可以往 上,下,左 或者 右 移动一个格子。.原创 2021-07-11 00:45:40 · 260 阅读 · 0 评论 -
5792. 统计平方和三元组的数目
title: 5792. 统计平方和三元组的数目date: 2021-07-11 00:39:00tags: [leetcode]5792. 统计平方和三元组的数目一个 平方和三元组 (a,b,c) 指的是满足 a2 + b2 = c2 的 整数 三元组 a,b 和 c 。给你一个整数 n ,请你返回满足 1 <= a, b, c <= n 的 平方和三元组 的数目。示例 1:输入:n = 5输出:2解释:平方和三元组为 (3,4,5) 和 (4,3,5) 。示例 2:.原创 2021-07-11 00:40:58 · 258 阅读 · 0 评论 -
面试题 17.10. 主要元素
title: 面试题 17.10. 主要元素date: 2021-07-10 17:38:57tags: [leetcode]面试题 17.10. 主要元素数组中占比超过一半的元素称之为主要元素。给你一个整数数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:输入:[3,2]输出:-1示例 3:输入:[2,2,1,1,1,2,2]输出:2.原创 2021-07-10 17:42:29 · 69 阅读 · 0 评论 -
5802. 统计好数字的数目
title: 5802. 统计好数字的数目date: 2021-07-04 12:08:06tags: [leetcode]5802. 统计好数字的数目我们称一个数字字符串是 好数字 当它满足(下标从 0 开始)偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 (2,3,5 或 7)。比方说,"2582" 是好数字,因为偶数下标处的数字(2 和 8)是偶数且奇数下标处的数字(5 和 2)为质数。但 "3245" 不是 好数字,因为 3 在偶数下标处但不是偶数。给你一个整数 n .原创 2021-07-04 12:11:15 · 216 阅读 · 0 评论 -
5790. 查询差绝对值的最小值
title: 5790. 查询差绝对值的最小值date: 2021-06-20 14:41:17tags:5790. 查询差绝对值的最小值一个数组 a 的 差绝对值的最小值 定义为:0 <= i < j < a.length 且 a[i] != a[j] 的 |a[i] - a[j]| 的 最小值。如果 a 中所有元素都 相同 ,那么差绝对值的最小值为 -1 。比方说,数组 [5,**2**,**3**,7,2] 差绝对值的最小值是 |2 - 3| = 1 。注意答案不为 .原创 2021-06-20 14:42:57 · 148 阅读 · 0 评论 -
5791. 统计子岛屿
title: 5791. 统计子岛屿date: 2021-06-20 13:59:58tags:5791. 统计子岛屿给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地)。一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域。任何矩阵以外的区域都视为水域。如果 grid2 的一个岛屿,被 grid1 的一个岛屿 完全 包含,也就是说 grid2 中该岛屿的每一个格子都被 grid1 中同一个岛屿完全包含,那么我们称 .原创 2021-06-20 14:03:50 · 151 阅读 · 0 评论 -
5789. 你完成的完整对局数
title: 5789. 你完成的完整对局数date: 2021-06-20 13:18:57tags:5789. 你完成的完整对局数一款新的在线电子游戏在近期发布,在该电子游戏中,以 刻钟 为周期规划若干时长为 15 分钟 的游戏对局。这意味着,在 HH:00、HH:15、HH:30 和 HH:45 ,将会开始一个新的对局,其中 HH 用一个从 00 到 23 的整数表示。游戏中使用 24 小时制的时钟 ,所以一天中最早的时间是 00:00 ,最晚的时间是 23:59 。给你两个字符串 st.转载 2021-06-20 13:25:33 · 124 阅读 · 0 评论 -
5788. 字符串中的最大奇数
title: 5788. 字符串中的最大奇数date: 2021-06-20 13:16:09tags: [leetcode]5788. 字符串中的最大奇数给你一个字符串 num ,表示一个大整数。请你在字符串 num 的所有 非空子字符串 中找出 值最大的奇数 ,并以字符串形式返回。如果不存在奇数,则返回一个空字符串 "" 。子字符串 是字符串中的一个连续的字符序列。示例 1:输入:num = "52"输出:"5"解释:非空子字符串仅有 "5"、"2" 和 "52" 。"5" 是其中.原创 2021-06-20 13:18:28 · 244 阅读 · 0 评论 -
5765. 跳跃游戏 VII
5765. 跳跃游戏 VII给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump 。一开始,你在下标 0 处,且该位置的值一定为 ‘0’ 。当同时满足如下条件时,你可以从下标 i 移动到下标 j 处:i + minJump <= j <= min(i + maxJump, s.length - 1) 且s[j] == ‘0’.如果你可以到达 s 的下标 s.length - 1 处,请你返回 true ,否则返回 false 。示例 1:输入:s原创 2021-05-23 14:09:30 · 126 阅读 · 1 评论 -
5764. 准时到达的列车最小时速
5764. 准时到达的列车最小时速给你一个浮点数 hour ,表示你到达办公室可用的总通勤时间。要到达办公室,你必须按给定次序乘坐 n 趟列车。另给你一个长度为 n 的整数数组 dist ,其中 dist[i] 表示第 i 趟列车的行驶距离(单位是千米)。每趟列车均只能在整点发车,所以你可能需要在两趟列车之间等待一段时间。例如,第 1 趟列车需要 1.5 小时,那你必须再等待 0.5 小时,搭乘在第 2 小时发车的第 2 趟列车。返回能满足你准时到达办公室所要求全部列车的 最小正整数 时速(单位:千转载 2021-05-23 13:23:58 · 96 阅读 · 0 评论 -
5763. 哪种连续子字符串更长
5763. 哪种连续子字符串更长给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串,返回 true ;否则,返回 false 。例如,s = “110100010” 中,由 1 组成的最长连续子字符串的长度是 2 ,由 0 组成的最长连续子字符串的长度是 3 。注意,如果字符串中不存在 0 ,此时认为由 0 组成的最长连续子字符串的长度是 0 。字符串中不存在 1 的情况也适用此规则。示例 1:输入:s = "1101"输出:原创 2021-05-23 12:36:39 · 76 阅读 · 0 评论 -
5762. 恰有 K 根木棍可以看到的排列数目
5762. 恰有 K 根木棍可以看到的排列数目有 n 根长度互不相同的木棍,长度为从 1 到 n 的整数。请你将这些木棍排成一排,并满足从左侧 可以看到 恰好 k 根木棍。从左侧 可以看到 木棍的前提是这个木棍的 左侧 不存在比它 更长的 木棍。例如,如果木棍排列为 [1,3,2,5,4] ,那么从左侧可以看到的就是长度分别为 1、3 、5 的木棍。给你 n 和 k ,返回符合题目要求的排列 数目 。由于答案可能很大,请返回对 109 + 7 取余 的结果。示例 1:输入:n = 3, k =原创 2021-05-16 16:03:55 · 190 阅读 · 0 评论 -
5761. 找出和为指定值的下标对
5761. 找出和为指定值的下标对给你两个整数数组 nums1 和 nums2 ,请你实现一个支持下述两类查询的数据结构:累加 ,将一个正整数加到 nums2 中指定下标对应元素上。计数 ,统计满足 nums1[i] + nums2[j] 等于指定值的下标对 (i, j) 数目(0 <= i < nums1.length 且 0 <= j < nums2.length)。实现 FindSumPairs 类:FindSumPairs(int[] nums1, int[]原创 2021-05-16 15:45:13 · 183 阅读 · 0 评论 -
5760. 构成交替字符串需要的最小交换次数
5760. 构成交替字符串需要的最小交换次数给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 "010" 和 "1010" 属于交替字符串,但 "0100" 不是。任意两个字符都可以进行交换,不必相邻 。示例 1:输入:s = "111000"输出:1解释:交换位置 1 和 4:"111000" -> "101010" ,字符串变原创 2021-05-16 15:36:53 · 343 阅读 · 0 评论 -
5759. 找出所有子集的异或总和再求和
5759. 找出所有子集的异或总和再求和一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为 空 ,则异或总和为 0 。例如,数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 = 1 。给你一个数组 nums ,请你求出 nums 中每个 子集 的 异或总和 ,计算并返回这些值相加之 和 。**注意:**在本题中,元素 相同 的不同子集应 多次 计数。数组 a 是数组 b 的一个 子集 的前提条件是:从 b 删除几个(也可能不删除)元素能够得到 a 。原创 2021-05-16 14:50:47 · 378 阅读 · 0 评论 -
5212. 向下取整数对和
5212. 向下取整数对和给你一个整数数组 nums ,请你返回所有下标对 0 <= i, j < nums.length 的 floor(nums[i] / nums[j]) 结果之和。由于答案可能会很大,请你返回答案对109 + 7 取余 的结果。函数 floor() 返回输入数字的整数部分。示例 1:输入:nums = [2,5,9]输出:10解释:floor(2 / 5) = floor(2 / 9) = floor(5 / 9) = 0floor(2 / 2) = fl原创 2021-05-16 14:44:08 · 280 阅读 · 0 评论 -
5744. 旋转盒子
5744. 旋转盒子给你一个 m x n 的字符矩阵 box ,它表示一个箱子的侧视图。箱子的每一个格子可能为:'#' 表示石头'*' 表示固定的障碍物'.' 表示空位置这个箱子被 顺时针旋转 90 度 ,由于重力原因,部分石头的位置会发生改变。每个石头会垂直掉落,直到它遇到障碍物,另一个石头或者箱子的底部。重力 不会 影响障碍物的位置,同时箱子旋转不会产生惯性 ,也就是说石头的水平位置不会发生改变。题目保证初始时 box 中的石头要么在一个障碍物上,要么在另一个石头上,要么在箱子的底部。原创 2021-05-16 13:43:38 · 166 阅读 · 0 评论 -
5743. 增长的内存泄露
5743. 增长的内存泄露给你两个整数 memory1 和 memory2 分别表示两个内存条剩余可用内存的位数。现在有一个程序每秒递增的速度消耗着内存。在第 i 秒(秒数从 1 开始),有 i 位内存被分配到 剩余内存较多 的内存条(如果两者一样多,则分配到第一个内存条)。如果两者剩余内存都不足 i 位,那么程序将 意外退出 。请你返回一个数组,包含 [crashTime, memory1crash, memory2crash] ,其中 crashTime是程序意外退出的时间(单位为秒), memo原创 2021-05-16 00:27:34 · 98 阅读 · 0 评论 -
5742. 将句子排序
5742. 将句子排序一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格。每个单词都只包含小写或大写英文字母。我们可以给一个句子添加 从 1 开始的单词位置索引 ,并且将句子中所有单词 打乱顺序 。比方说,句子 "This is a sentence" 可以被打乱顺序得到 "sentence4 a3 is2 This1" 或者 "is2 sentence4 This1 a3" 。给你一个 打乱顺序 的句子 s ,它包含的单词不超过 9 个,请你重新构造并得到原本顺序的句原创 2021-05-16 00:18:44 · 514 阅读 · 2 评论 -
1269. 停在原地的方案数
1269. 停在原地的方案数有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 steps 次操作以后,指针仍然指向索引 0 处的方案数。由于答案可能会很大,请返回方案数 模 10^9 + 7 后的结果。示例 1:输入:steps = 3, arrLen = 2输出:4解释:3 步后,总共有 4 种不同的方法可以原创 2021-05-13 13:13:55 · 66 阅读 · 0 评论 -
5752. 子数组最小乘积的最大值
5752. 子数组最小乘积的最大值一个数组的 最小乘积 定义为这个数组中 最小值 乘以 数组的 和 。比方说,数组 [3,2,5] (最小值是 2)的最小乘积为 2 * (3+2+5) = 2 * 10 = 20 。给你一个正整数数组 nums ,请你返回 nums 任意 非空子数组 的最小乘积 的 最大值 。由于答案可能很大,请你返回答案对 109 + 7 取余 的结果。请注意,最小乘积的最大值考虑的是取余操作 之前 的结果。题目保证最小乘积的最大值在 不取余 的情况下可以用 64 位有符号整原创 2021-05-09 14:48:17 · 198 阅读 · 0 评论 -
5751. 下标对中的最大距离
5751. 下标对中的最大距离给你两个 非递增 的整数数组 nums1 和 nums2 ,数组下标均 从 0 开始 计数。下标对 (i, j) 中 0 <= i < nums1.length 且 0 <= j < nums2.length 。如果该下标对同时满足 i <= j 且 nums1[i] <= nums2[j] ,则称之为 有效 下标对,该下标对的 距离 为 j - i 。返回所有 有效 下标对 (i, j) 中的 最大距离 。如果不存在有效下标对,返回原创 2021-05-09 14:04:30 · 93 阅读 · 0 评论 -
5750. 人口最多的年份
5750. 人口最多的年份给你一个二维整数数组 logs ,其中每个 logs[i] = [birthi, deathi] 表示第 i 个人的出生和死亡年份。年份 x 的 人口 定义为这一年期间活着的人的数目。第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, deathi - 1] 内。注意,人不应当计入他们死亡当年的人口中。返回 人口最多 且 最早 的年份。示例 1:输入:logs = [[1993,1999],[2000,2010]]输出:1993解释:人口最多为原创 2021-05-09 13:56:41 · 197 阅读 · 0 评论 -
5733. 最近的房间
5733. 最近的房间一个酒店里有 n 个房间,这些房间用二维整数数组 rooms 表示,其中 rooms[i] = [roomIdi, sizei] 表示有一个房间号为 roomIdi 的房间且它的面积为 sizei 。每一个房间号 roomIdi 保证是 独一无二 的。同时给你 k 个查询,用二维数组 queries 表示,其中 queries[j] = [preferredj, minSizej] 。第 j 个查询的答案是满足如下条件的房间 id :房间的面积 至少 为 minSizej ,且原创 2021-05-02 14:28:09 · 139 阅读 · 0 评论 -
5732. 减小和重新排列数组后的最大元素
5732. 减小和重新排列数组后的最大元素给你一个正整数数组 arr 。请你对 arr 执行一些操作(也可以不进行任何操作),使得数组满足以下条件:arr 中 第一个 元素必须为 1 。任意相邻两个元素的差的绝对值 小于等于 1 ,也就是说,对于任意的 1 <= i < arr.length (数组下标从 0 开始),都满足 abs(arr[i] - arr[i - 1]) <= 1 。abs(x) 为 x 的绝对值。你可以执行以下 2 种操作任意次:减小 arr 中任意元素的值原创 2021-05-02 00:10:50 · 102 阅读 · 0 评论 -
5731. 座位预约管理系统
5731. 座位预约管理系统请你设计一个管理 n 个座位预约的系统,座位编号从 1 到 n 。请你实现 SeatManager 类:SeatManager(int n) 初始化一个 SeatManager 对象,它管理从 1 到 n 编号的 n 个座位。所有座位初始都是可预约的。int reserve() 返回可以预约座位的 最小编号 ,此座位变为不可预约。void unreserve(int seatNumber) 将给定编号 seatNumber 对应的座位变成可以预约。示例 1:输入原创 2021-05-02 00:06:42 · 612 阅读 · 0 评论 -
5730. 将所有数字用字符替换
5730. 将所有数字用字符替换给你一个下标从 0 开始的字符串 s ,它的 偶数 下标处为小写英文字母,奇数 下标处为数字。定义一个函数 shift(c, x) ,其中 c 是一个字符且 x 是一个数字,函数返回字母表中 c 后面第 x 个字符。比方说,shift('a', 5) = 'f' 和 shift('x', 0) = 'x' 。对于每个 奇数 下标 i ,你需要将数字 s[i] 用 shift(s[i-1], s[i]) 替换。请你替换所有数字以后,将字符串 s 返回。题目 保证.原创 2021-05-02 00:03:53 · 249 阅读 · 0 评论 -
32. 最长有效括号
32. 最长有效括号给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = "(()"输出:2解释:最长有效括号子串是 "()"示例 2:输入:s = ")()())"输出:4解释:最长有效括号子串是 "()()"示例 3:输入:s = ""输出:0提示:0 <= s.length <= 3 * 104s[i] 为 '(' 或 ')'解法:栈int longestValidParenthes原创 2021-04-19 13:09:38 · 57 阅读 · 0 评论 -
5718. 统计一个圆中点的数目
统计一个圆中点的数目给你一个数组 points ,其中 points[i] = [xi, yi] ,表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。同时给你一个数组 queries ,其中 queries[j] = [xj, yj, rj] ,表示一个圆心在 (xj, yj) 且半径为 rj 的圆。对于每一个查询 queries[j] ,计算在第 j 个圆 内 点的数目。如果一个点在圆的 边界上 ,我们同样认为它在圆 内 。请你返回一个数组 answer ,其中 answer[j]转载 2021-04-18 00:20:09 · 185 阅读 · 0 评论 -
5719. 每个查询的最大异或值
每个查询的最大异或值给你一个 有序 数组 nums ,它由 n 个非负整数组成,同时给你一个整数 maximumBit 。你需要执行以下查询 n 次:找到一个非负整数 k < 2maximumBit ,使得 nums[0] XOR nums[1] XOR ... XOR nums[nums.length-1] XOR k 的结果 最大化 。k 是第 i 个查询的答案。从当前数组 nums 删除 最后 一个元素。请你返回一个数组 answer ,其中 answer[i]是第 i 个查询的结果原创 2021-04-18 00:13:35 · 116 阅读 · 0 评论 -
5717. 最少操作使数组递增
最少操作使数组递增给你一个整数数组 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 的数组原创 2021-04-18 00:05:15 · 342 阅读 · 0 评论 -
字符串相乘
字符串相乘43. 字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能原创 2021-04-16 14:41:57 · 74 阅读 · 0 评论