![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维题
文章平均质量分 53
Guapifang
这个作者很懒,什么都没留下…
展开
-
LeetCode1657. 确定两个字符串是否接近
操作 1:交换任意两个 现有 字符。例如,abcde -> aecdb操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。例如,aacabb -> bbcbaa(所有 a 转化为 b ,而所有的 b 转换为 a )你可以根据需要对任意一个字符串多次使用这两种操作。给你两个字符串,word1 和 word2。如果 word1 和 word2 接近 ,就返回 true;否则,返回 false。原创 2023-07-18 21:43:36 · 462 阅读 · 0 评论 -
2. 小红的排列构造
小红的排列构造小红希望你构造一个排列,满足对于排列中的每一项��ai都满足:���ai+i均不是质数(下标�i从1开始)。你能帮帮她吗?长度为�n的排列是指:一个长度为�n的数组,其中1到�n每个正整数恰好出现1次。例如[2,1,3]是排列,而[1,3,4,3]不是排列。原创 2023-03-14 11:22:59 · 1730 阅读 · 0 评论 -
LeetCode 面试题 05.02. 二进制数转字符串
面试题 05.02. 二进制数转字符串提示中等90相关企业二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。示例1:输入:0.625输出:“0.101”示例2:输入:0.1输出:“ERROR”提示:0.1无法被二进制准确表示提示:32位包括输出中的 “0.” 这两位。题目保证输入用例的小数位数最多只有 6 位。原创 2023-03-02 13:08:43 · 114 阅读 · 1 评论 -
LeetCode 2315. 统计星号
请你返回 不在 竖线对之间,s 中 ‘*’ 的数目。注意,每个竖线 ‘|’ 都会 恰好 属于一个对。示例 1:输入:s = “l|eet|ceo|*de|”。第一和第二条竖线 ‘|’ 之间的字符不计入答案。同时,第三条和第四条竖线 ‘|’ 之间的字符也不计入答案。不在竖线对之间总共有 2 个星号,所以我们返回 2。示例 2:输入:s = “iamprogrammer”输出:0解释:在这个例子中,s 中没有星号。所以返回 0。原创 2023-01-29 23:25:39 · 301 阅读 · 0 评论 -
LeetCode 1780. 判断一个数字是否可以表示成三的幂的和
对于一个整数 y ,如果存在整数 x 满足 y == 3x ,我们称这个整数 y 是三的幂。原创 2022-12-09 20:35:23 · 208 阅读 · 0 评论 -
Leetcode754. 到达终点数字 --数论+思维
你可以做一些数量的移动 numMoves :每次你可以选择向左或向右移动。第 i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。给定整数 target ,返回 到达目标所需的 最小 移动次数(即最小 numMoves )。示例 1:输入: target = 2输出: 3解释:第一次移动,从 0 到 1。第二次移动,从 1 到 -1。第三次移动,从 -1 到 2。示例 2:输入: target = 3输出: 2。原创 2022-11-04 19:54:14 · 985 阅读 · 0 评论 -
LeetCode 1591. 奇怪的打印机 II --判断排序
奇怪的打印机 II给你一个奇怪的打印机,它有如下两个特殊的打印规则:每一次操作时,打印机会用同一种颜色打印一个矩形的形状,每次打印会覆盖矩形对应格子里原本的颜色。一旦矩形根据上面的规则使用了一种颜色,那么 相同的颜色不能再被使用 。给你一个初始没有颜色的 m x n 的矩形 targetGrid ,其中 targetGrid[row][col] 是位置 (row, col) 的颜色。如果你能按照上述规则打印出矩形 targetGrid ,请你返回 true ,否则返回 false 。示例 1.原创 2022-03-17 16:04:30 · 728 阅读 · 0 评论 -
LeetCode 324. 摆动排序 II
摆动排序 II给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]… 的顺序。你可以假设所有输入数组都可以得到满足题目要求的结果。示例 1:输入:nums = [1,5,1,1,6,4]输出:[1,6,1,5,1,4]解释:[1,4,1,5,1,6] 同样是符合题目要求的结果,可以被判题程序接受。示例 2:输入:nums = [1,3,2,2,3,1]输出:[2,3,1,3,1,2]提示:1 <.原创 2022-03-07 19:59:30 · 443 阅读 · 0 评论 -
LeetCode 15. 三数之和
三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <= 3000-1.原创 2022-03-04 16:19:10 · 121 阅读 · 0 评论 -
LeetCode 593. 有效的正方形
有效的正方形给定二维空间中四点的坐标,返回四点是否可以构造一个正方形。一个点的坐标(x,y)由一个有两个整数的整数数组表示。示例:输入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]输出: True注意:所有输入整数都在 [-10000,10000] 范围内。一个有效的正方形有四个等长的正长和四个等角(90度角)。输入点没有顺序。题解直接计算6条边的长度是否符合正方形即可。AC代码class Solution {public:.原创 2021-12-01 15:44:30 · 107 阅读 · 0 评论 -
LeetCode 424. 替换后的最长重复字符 -- 双指针
替换后的最长重复字符给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 104。示例 1:输入:s = “ABAB”, k = 2输出:4解释:用两个’A’替换为两个’B’,反之亦然。示例 2:输入:s = “AABABBA”, k = 1输出:4解释:将中间的一个’A’替换为’B’,字符串变为 “AABBBBA”。子串 “BBBB” 有最长.原创 2021-12-01 12:14:28 · 426 阅读 · 0 评论 -
LeetCode 481. 神奇字符串 -- 找规律
神奇字符串神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成,并需要遵守下面的规则:神奇字符串 s 的神奇之处在于,串联字符串中 '1' 和 '2' 的连续出现次数可以生成该字符串。s 的前几个元素是 s = “1221121221221121122……” 。如果将 s 中连续的若干 1 和 2 进行分组,可以得到 “1 22 11 2 1 22 1 22 11 2 11 22 …” 。每组中 1 或者 2 的出现次数分别是 “1 2 2 1 1 2 1 2 2 1 2 2 …” 。上面的出现次数正.原创 2021-11-27 23:10:03 · 287 阅读 · 0 评论 -
LeetCode 89. 格雷编码 -- 找规律?
格雷编码n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。示例 1:输入:n = 2输出:[0,1,3,2]解释:[0,1,3,2] 的二进制表示是 [00,01,11,10] 。00 和 0..原创 2021-11-27 11:19:55 · 523 阅读 · 0 评论 -
LeetCode 172. 阶乘后的零--暴力运算取模
阶乘后的零给定一个整数 n ,返回 n! 结果中尾随零的数量。提示 n! = n * (n - 1) * (n - 2) * … * 3 * 2 * 1示例 1:输入:n = 3输出:0解释:3! = 6 ,不含尾随 0示例 2:输入:n = 5输出:1解释:5! = 120 ,有一个尾随 0示例 3:输入:n = 0输出:0提示:0 <= n <= 104题解直接开long long暴力运算,因为是尾部的0,所以取模10000000就行,因为前面部分的数.原创 2021-10-28 11:07:14 · 2934 阅读 · 0 评论 -
LeetCode 869. 重新排序得到 2 的幂---思维
重新排序得到 2 的幂给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。示例 1:输入:1输出:true示例 2:输入:10输出:false示例 3:输入:16输出:true示例 4:输入:24输出:false示例 5:输入:46输出:true提示:1 <= N <= 10^9题解暴力排序,算一下,9的阶乘也不会超时,好像暴力就可以.原创 2021-10-28 10:43:26 · 153 阅读 · 0 评论 -
LeetCode 1798. 你能构造出连续值的最大数目--关系推导
你能构造出连续值的最大数目给你一个长度为 n 的整数数组 coins ,它代表你拥有的 n 个硬币。第 i 个硬币的值为 coins[i] 。如果你从这些硬币中选出一部分硬币,它们的和为 x ,那么称,你可以 构造 出 x 。请返回从 0 开始(包括 0 ),你最多能 构造 出多少个连续整数。你可能有多个相同值的硬币。示例 1:输入:coins = [1,3]输出:2解释:你可以得到以下这些值:0:什么都不取 []1:取 [1]从 0 开始,你可以构造出 2 个连续整数。示例 .原创 2021-10-19 13:37:21 · 162 阅读 · 0 评论 -
LeetCode 319. 灯泡开关--找规律
灯泡开关初始时有 n 个灯泡处于关闭状态。对某个灯泡切换开关意味着:如果灯泡状态为关闭,那该灯泡就会被开启;而灯泡状态为开启,那该灯泡就会被关闭。第 1 轮,每个灯泡切换一次开关。即,打开所有的灯泡。第 2 轮,每两个灯泡切换一次开关。 即,每两个灯泡关闭一个。第 3 轮,每三个灯泡切换一次开关。第 i 轮,每 i 个灯泡切换一次开关。 而第 n 轮,你只切换最后一个灯泡的开关。找出 n 轮后有多少个亮着的灯泡。示例 1:输入:n = 3输出:1解释:初始时, 灯泡状态 [关闭,.原创 2021-10-09 21:15:21 · 220 阅读 · 0 评论 -
LeetCode 853. 车队--排序
车队N 辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着行驶。此时,我们会忽略这两辆车之间的距离,也就是说,它们被假定处于相同的位置。车队 是一些由行驶在相同位置、具有相同速度的车组成的非空集合。注意,一辆车也可以是一个车队。即便一辆车在目的地才赶上了一个车队,它们仍然会被视作是.原创 2021-09-04 10:59:37 · 129 阅读 · 0 评论 -
LeetCode 789. 逃脱阻碍者--比较距离
逃脱阻碍者你在进行一个简化版的吃豆人游戏。你从 [0, 0] 点开始出发,你的目的地是 target = [xtarget, ytarget] 。地图上有一些阻碍者,以数组 ghosts 给出,第 i 个阻碍者从 ghosts[i] = [xi, yi] 出发。所有输入均为 整数坐标 。每一回合,你和阻碍者们可以同时向东,西,南,北四个方向移动,每次可以移动到距离原位置 1 个单位 的新位置。当然,也可以选择 不动 。所有动作 同时 发生。如果你可以在任何阻碍者抓住你 之前 到达目的地(阻碍者可以.原创 2021-08-28 20:03:31 · 56 阅读 · 0 评论 -
LeetCode 659. 分割数组为连续子序列--贪心策略+优先队列
分割数组为连续子序列给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个长度至少为 3 的子序列,其中每个子序列都由连续整数组成。如果可以完成上述分割,则返回 true ;否则,返回 false 。示例 1:输入: [1,2,3,3,4,5]输出: True解释:你可以分割出这样两个连续子序列 :1, 2, 33, 4, 5示例 2:输入: [1,2,3,3,4,4,5,5]输出: True解释:你可以分割出这样两个连续子序列 :1, 2, .原创 2021-08-26 15:16:42 · 154 阅读 · 0 评论 -
LeetCode 881. 救生艇--排序
救生艇第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。示例 1:输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2)示例 2:输入:people = [3,2,2,1], limit = 3输出:3解释:3 艘船分别载 (1, 2), (2) 和 (3)示例 3:输入:peopl.原创 2021-08-26 13:55:13 · 89 阅读 · 0 评论 -
LeetCode 554. 砖墙
砖墙你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和相等。你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线 穿过的砖块数量最少 ,并且返回 穿过的砖块数量 。示例.原创 2021-08-23 22:01:37 · 70 阅读 · 0 评论 -
LeetCode 330. 按要求补齐数组--区间覆盖+思维
按要求补齐数组给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。示例 1:输入: nums = [1,3], n = 6输出: 1解释:根据 nums 里现有的组合 [1], [3], [1,3],可以得出 1, 3, 4。现在如果我们将 2 添加到 nums 中, 组合变为: [1], [2], [.原创 2021-08-16 17:28:08 · 214 阅读 · 0 评论 -
LeetCode 134. 加油站--求子数组最大和
加油站在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入:gas = [1,2,3,4,5]cost = [3,4,5,1,.原创 2021-07-20 13:28:24 · 101 阅读 · 0 评论 -
LeetCode 1846. 减小和重新排列数组后的最大元素
减小和重新排列数组后的最大元素给你一个正整数数组 arr 。请你对 arr 执行一些操作(也可以不进行任何操作),使得数组满足以下条件:arr 中 第一个 元素必须为 1 。任意相邻两个元素的差的绝对值 小于等于 1 ,也就是说,对于任意的 1 <= i < arr.length (数组下标从 0 开始),都满足 abs(arr[i] - arr[i - 1]) <= 1 。abs(x) 为 x 的绝对值。你可以执行以下 2 种操作任意次:减小 arr 中任意元素的值,使其.原创 2021-07-15 10:08:37 · 128 阅读 · 0 评论 -
LeetCode 400. 第 N 位数字--前缀和+数据判断
第 N 位数字在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 位数字。注意:n 是正数且在 32 位整数范围内(n < 231)。示例 1:输入:3输出:3示例 2:输入:11输出:0解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, … 里是 0 ,它是 10 的一部分。题解就是累计前缀和,以数字长度为单位,比如数字长为1有多少个,长为2 的有多少个,长为3的有多少个,累.原创 2021-07-11 21:10:55 · 136 阅读 · 0 评论 -
LeetCode 413. 等差数列划分--简单思考
等差数列划分如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。如果满足以下条件,则称子数组(P, Q)为等差数组:元素 A[P], A[p + 1], …, .原创 2021-07-06 23:21:38 · 121 阅读 · 2 评论 -
LeetCode 1526. 形成目标数组的子数组最少增加次数---数字思维
形成目标数组的子数组最少增加次数给你一个整数数组 target 和一个数组 initial ,initial 数组与 target 数组有同样的维度,且一开始全部为 0 。请你返回从 initial 得到 target 的最少操作次数,每次操作需遵循以下规则:在 initial 中选择 任意 子数组,并将子数组中每个元素增加 1 。答案保证在 32 位有符号整数以内。示例 1:输入:target = [1,2,3,2,1]输出:3解释:我们需要至少 3 次操作从 intial 数组.原创 2021-06-02 14:54:48 · 227 阅读 · 0 评论 -
LeetCode 1711. 大餐计数--map累计数目
大餐计数大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 109 + 7 取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness = [1,3,5,7,9]输出:.原创 2021-02-07 13:16:08 · 119 阅读 · 0 评论 -
LeetCode 1442. 形成两个异或相等数组的三元组数目--map累计相同异或和数目
形成两个异或相等数组的三元组数目给你一个整数数组 arr 。现需要从数组中取三个下标 i、j 和 k ,其中 (0 <= i < j <= k < arr.length) 。a 和 b 定义如下:a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1]b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k]注意:^ 表示 按位异或 操作。请返回能够令 a == b 成立的三元组 (i, j , k) 的数目。示例 .原创 2021-02-07 12:30:28 · 153 阅读 · 0 评论 -
LeetCode 647. 回文子串
回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:输入的字符串长度不会超过 1000 。题解:不可能保留跑循环,然后再判断区间[i,j]构成的字符串是否是回文,不过可以遍历.原创 2020-12-09 22:20:50 · 150 阅读 · 0 评论 -
LeetCode 899. 有序队列--思维题
有序队列给出了一个由小写字母组成的字符串 S。然后,我们可以进行任意次数的移动。在每次移动中,我们选择前 K 个字母中的一个(从左侧开始),将其从原位置移除,并放置在字符串的末尾。返回我们在任意次数的移动之后可以拥有的按字典顺序排列的最小字符串。示例 1:输入:S = “cba”, K = 1输出:“acb”解释:在第一步中,我们将第一个字符(“c”)移动到最后,获得字符串 “bac”。在第二步中,我们将第一个字符(“b”)移动到最后,获得最终结果 “acb”。示例 2:输入:S .原创 2020-12-02 15:42:09 · 504 阅读 · 0 评论 -
LeetCode 581. 最短无序连续子数组--标记区间最大最小值
最短无序连续子数组给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数组长度范围在 [1, 10,000]。输入的数组可能包含重复元素 ,所以升序的意思是<=。题解:思路比较简单,因为要求升序,找.原创 2020-11-16 10:59:58 · 212 阅读 · 0 评论 -
LeetCode1567. 乘积为正数的最长子数组长度--简单模拟
乘积为正数的最长子数组长度给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。请你返回乘积为正数的最长子数组长度。示例 1:输入:nums = [1,-2,-3,4]输出:4解释:数组本身乘积就是正数,值为 24 。示例 2:输入:nums = [0,1,-2,-3,-4]输出:3解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6 。注意,我们不能把 0 也包括到子数组中,因为这样乘积为.原创 2020-10-29 19:27:59 · 183 阅读 · 0 评论 -
LeetCode 794. 有效的井字游戏
有效的井字游戏用字符串数组作为井字游戏的游戏板 board。当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true。该游戏板是一个 3 x 3 数组,由字符 " ",“X” 和 “O” 组成。字符 " " 代表一个空位。以下是井字游戏的规则:玩家轮流将字符放入空位(" ")中。第一个玩家总是放字符 “X”,且第二个玩家总是放字符 “O”。“X” 和 “O” 只允许放置在空位中,不允许对已放有字符的位置进行填充。当有 3 个相同(且非空)的字符填充任何行、列或.原创 2020-10-29 13:53:06 · 157 阅读 · 0 评论 -
LeetCode 1015. 可被 K 整除的最小整数--数学证明+取模运算
可被 K 整除的最小整数给定正整数 K,你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。返回 N 的长度。如果不存在这样的 N,就返回 -1。示例 1:输入:1输出:1解释:最小的答案是 N = 1,其长度为 1。示例 2:输入:2输出:-1解释:不存在可被 2 整除的正整数 N 。示例 3:输入:3输出:3解释:最小的答案是 N = 111,其长度为 3。提示:1 <= K <= 10^5题解:先处理一个问题,题目是要求找111…类型的.原创 2020-10-28 13:17:36 · 490 阅读 · 0 评论 -
LeetCode 1073. 负二进制数相加---模仿普通的二进制数运算
负二进制数相加给出基数为 -2 的两个数 arr1 和 arr2,返回两数相加的结果。数字以 数组形式 给出:数组由若干 0 和 1 组成,按最高有效位到最低有效位的顺序排列。例如,arr = [1,1,0,1] 表示数字 (-2)^3 + (-2)^2 + (-2)^0 = -3。数组形式 的数字也同样不含前导零:以 arr 为例,这意味着要么 arr == [0],要么 arr[0] == 1。返回相同表示形式的 arr1 和 arr2 相加的结果。两数的表示形式为:不含前导零、由若干 0 和.原创 2020-10-21 20:13:49 · 490 阅读 · 0 评论 -
LeetCode 777. 在LR字符串中交换相邻字符--简单思考然后模拟
在LR字符串中交换相邻字符在一个由 ‘L’ , ‘R’ 和 ‘X’ 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True。示例 :输入: start = “RXXLRXRXL”, end = “XRLXXRRLX”输出: True解释:我们可以通过以下几步将start.原创 2020-10-21 16:11:24 · 310 阅读 · 0 评论 -
LeetCode 923. 三数之和的多种可能--进行数据标记
三数之和的多种可能给定一个整数数组 A,以及一个整数 target 作为目标值,返回满足 i < j < k 且 A[i] + A[j] + A[k] == target 的元组 i, j, k 的数量。由于结果会非常大,请返回 结果除以 10^9 + 7 的余数。示例 1:输入:A = [1,1,2,2,3,3,4,4,5,5], target = 8输出:20解释:按值枚举(A[i],A[j],A[k]):(1, 2, 5) 出现 8 次;(1, 3, 4) 出现 8 .原创 2020-10-18 21:48:10 · 136 阅读 · 0 评论 -
LeetCode 1498. 满足条件的子序列数目--分区间算组合数+快速幂取模
满足条件的子序列数目给你一个整数数组 nums 和一个整数 target 。请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。由于答案可能很大,请将结果对 10^9 + 7 取余后返回。示例 1:输入:nums = [3,5,6,7], target = 9输出:4解释:有 4 个子序列满足该条件。[3] -> 最小元素 + 最大元素 <= target (3 + 3 <= 9)[3,5] -> (3.原创 2020-10-18 21:25:59 · 265 阅读 · 0 评论