leetcode
文章平均质量分 66
Roam-G
for the ability
展开
-
给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。请你用整数形式返回 nums 中的特定元素之 和 ,这些特定元素满足:其对应下标的二进制表示中恰存在 k 个置位。整数的二进制表
十进制转为2进制:1 使用 Integer.toBinaryString() 方法:这是 Integer 类的一个方法,可以直接将十进制数转换为二进制数2 使用 Integer.toString() 方法:我们可以使用 Integer 类的 toString() 方法将十进制数转换为二进制数。此方法有两个参数,第一个参数是十进制数,第二个参数是我们要转换的基数。对于二进制,基数为2。原创 2024-01-25 13:48:00 · 415 阅读 · 0 评论 -
执行操作后的变量值,我的题解首次优于官方
我的想法也很简单,就是逐个读取数据,然后判断该元素是否包含“--”或者“++”其中之一就可以了。--X:X 减 1 ,X = 0 - 1 = -1。X++:X 加 1 ,X = -1 + 1 = 0。X++:X 加 1 ,X = 0 + 1 = 1。,这是由操作组成的一个列表,返回执行所有操作后,++X:X 加 1 ,X = 0 + 1 = 1。++X:X 加 1 ,X = 1 + 1 = 2。X++:X 加 1 ,X = 2 + 1 = 3。感觉内存占比挺大的。比我的题解更耗内存!原创 2022-12-23 21:28:48 · 507 阅读 · 0 评论 -
移动所有球到每个盒子所需的最小操作数有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes ,其中 boxes[i] 的值为 ‘0‘ 表示第 i 个盒子是 空 的,而 boxes
3) 第 3 个盒子:将一个小球从第 1 个盒子移动到第 3 个盒子,需要 2 步操作。将一个小球从第 2 个盒子移动到第 3 个盒子,需要 1 步操作。1) 第 1 个盒子:将一个小球从第 2 个盒子移动到第 1 个盒子,需要 1 步操作。2) 第 2 个盒子:将一个小球从第 1 个盒子移动到第 2 个盒子,需要 1 步操作。注意,操作执行后,某些盒子中可能会存在不止一个小球。不停止的刷题,逐渐的做中等难度的题目也得心应手了。小球从某个盒子移动到一个与之相邻的盒子中。是将所有小球移动到第。原创 2022-12-02 23:51:24 · 155 阅读 · 0 评论 -
情感丰富的文字
例如,以 "hello" 为例,我们可以对字母组 "o" 扩张得到 "hellooo",但是无法以同样的方法得到 "helloo" 因为字母组 "oo" 长度小于 3。此外,我们可以进行另一种扩张 "ll" -> "lllll" 以获得 "helllllooo"。我们将相邻字母都相同的一串字符定义为相同字母组,例如:"h", "eee", "ll", "ooo"。我们能通过扩张 "hello" 的 "e" 和 "o" 来得到 "heeellooo"。输入一组查询单词,输出其中可扩张的单词数量。原创 2022-11-25 21:18:40 · 92 阅读 · 0 评论 -
请你设计一个可以解释字符串 command 的 Goal 解析器
请你设计一个可以解释字符串command的。command由"G"、"()"和/或"(al)"按某种顺序组成。Goal 解析器会将"G"解释为字符串"G"、"()"解释为字符串"o","(al)"解释为字符串"al"。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串command,返回对command的解释结果。"Goal"Goal 解析器解释命令的步骤如下所示:G -> G() -> o(al) -> al最后连接得到的结果是 "Goal""Gooooal"原创 2022-11-06 17:26:25 · 444 阅读 · 0 评论 -
交替合并字符串
开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。合并后: a p b q r s。合并后: a p b q c d。合并后: a p b q c r。原创 2022-10-23 22:40:22 · 152 阅读 · 0 评论 -
仅执行一次字符串交换能否使两个字符串相等
给你长度相等的两个字符串s1和s2。一次操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对执行就可以使两个字符串相等,返回true;否则,返回false。true例如,交换 s2 中的第一个和最后一个字符可以得到 "bank"false一次字符串交换无法使两个字符串相等true两个字符串已经相等,所以不需要进行字符串交换。原创 2022-10-11 15:05:11 · 152 阅读 · 0 评论 -
旋转数字详解
难度中等143我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方(在这种情况下,它们以不同的方向旋转,换句话说,2 和 5 互为镜像);6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数N, 计算从1到N中有多少个数 X 是好数?原创 2022-09-27 18:02:14 · 687 阅读 · 0 评论 -
拆除炸弹详解
解密后的密码为 [7+1+4, 1+4+5, 4+5+7, 5+7+1]。由于 code 是循环的, code[n-1] 下一个元素是 code[0] ,且 code[0] 前一个元素是 code[n-1]。你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k。如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之和替换。如果 k < 0 ,将第 i 个数字用 之前 k 个数字之和替换。输入:code = [5,7,1,4], k = 3。输出:[12,10,16,13]原创 2022-09-24 23:59:10 · 155 阅读 · 0 评论 -
检查单词是否为句中其他单词的前缀
如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1。输入:sentence = "i love eating burger", searchWord = "burg"解释:"burg" 是 "burger" 的前缀,而 "burger" 是句子中第 4 个单词。原创 2022-08-22 00:28:57 · 100 阅读 · 0 评论 -
给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。
请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母后面应该跟着数字,而数字后面应该跟着字母。请你返回 重新格式化后 的字符串;如果无法按要求重新格式化,则返回一个 空字符串 。...原创 2022-08-11 15:42:38 · 500 阅读 · 0 评论 -
每日一题
744. 寻找比目标字母大的最小字母难度简单197给你一个排序后的字符列表letters,列表中只包含小写英文字母。另给出一个目标字母target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母target = 'z'并且字符列表为letters = ['a', 'b'],则答案返回'a'示例 1:输入: letters = ["c", "f", "j"],target = "a"输出: "c"示例 2...原创 2022-04-03 22:13:16 · 62 阅读 · 0 评论 -
一天一题【棒球比赛】
682. 棒球比赛难度简单242你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。 "D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据原创 2022-03-26 23:28:26 · 184 阅读 · 0 评论 -
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 输出:0package LeetCode;import java.util.Scanner;public class leetcod...原创 2022-03-25 21:28:57 · 218 阅读 · 0 评论 -
统计最高分的节点数目
2049. 统计最高分的节点数目难度中等115给你一棵根节点为 0 的 二叉树 ,它总共有 n 个节点,节点编号为 0 到 n - 1 。同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。一个子树的 大小 为这个子树内节点的数目。每个节点都有一个与之关联的 分数 。求出某个节点分数的方法是,将这个节点和与它相连的边全部 删除 ,剩余部分是若干个 非空 子树,这个节点的原创 2022-03-11 23:16:53 · 77 阅读 · 0 评论 -
辗转相除法 求最大公约数 详解
//辗转相除法 求最大公约数// 最小公倍数 等于 两个数乘积/最大公约数import javax.swing.plaf.synth.SynthOptionPaneUI;import java.util.Scanner;public class AAA {//题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 public static void main(String[] args) { System.out.println("Please ent原创 2022-03-08 15:56:47 · 241 阅读 · 0 评论 -
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
258. 各位相加难度简单475给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。示例 1:输入: num = 38输出: 2 解释: 各位相加的过程为:38 --> 3 + 8 --> 1111 --> 1 + 1 --> 2由于 2 是一位数,所以返回 2示例 1:输入: num = 0 输出: 012341+2+3+4=101+0=1前言这道题的本质是计算自然数num 的数根数..原创 2022-03-03 22:12:27 · 4005 阅读 · 0 评论 -
为什么我的代码不通过?增量元素之间的最大差值
题目2016. 增量元素之间的最大差值难度简单75给你一个下标从0开始的整数数组nums,该数组的大小为n,请你计算nums[j] - nums[i]能求得的最大差值,其中0 <= i < j < n且nums[i] < nums[j]。返回最大差值。如果不存在满足要求的i和j,返回-1。示例 1:输入:nums = [7,1,5,4]输出:4解释:最大差值出现在 i = 1 且 j = 2 时,nums...原创 2022-02-27 00:02:56 · 272 阅读 · 0 评论 -
集合和数组互转,list,array
数组 转 List:使用 Arrays.asList(array) 进行转换。List 转 数组:使用 List 自带的 toArray() 方法。原创 2022-02-26 22:08:45 · 795 阅读 · 0 评论 -
每日一題 最简分数
1447. 最简分数难度中等给你一个整数n,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于n的最简分数。分数可以以任意顺序返回。示例 1:输入:n = 2 输出:["1/2"] 解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2:输入:n = 3 输出:["1/2","1/3","2/3"]示例 3:输入:n = 4 输出:["1/2","1/3","1/4","2/3","3/4"] 解释:"2/4" 不是最...原创 2022-02-10 14:27:44 · 949 阅读 · 0 评论 -
快乐字符串
1405. 最长快乐字符串难度中等如果字符串中不含有任何'aaa','bbb'或'ccc'这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。给你三个整数a,b,c,请你返回任意一个满足下列全部条件的字符串s: s是一个尽可能长的快乐字符串。 s中最多有a个字母'a'、b个字母'b'、c个字母'c'。 s中只含有'a'、'b'、'c'三种字母。 如果不存在这样的字符串s,请返回一个空字符串""。示例...原创 2022-02-07 15:19:20 · 296 阅读 · 0 评论 -
每天坚持做一件事真的很难
677. 键值映射难度中等173实现一个MapSum类,支持两个方法,insert和sum:MapSum()初始化MapSum对象 void insert(String key, int val)插入key-val键值对,字符串表示键key,整数表示值val。如果键key已经存在,那么原来的键值对将被替代成新的键值对。 int sum(string prefix)返回所有以该前缀prefix开头的键key的值的总和。示例:输入:["Ma...原创 2021-11-14 23:13:13 · 60 阅读 · 0 评论 -
2021-11-11 光棍节快乐
629. K个逆序对数组难度困难201给出两个整数n和k,找出所有包含从1到n的数字,且恰好拥有k个逆序对的不同的数组的个数。逆序对的定义如下:对于数组的第i个和第j个元素,如果满i<j且a[i]>a[j],则其为一个逆序对;否则不是。由于答案可能很大,只需要返回 答案 mod 109+ 7 的值。示例 1:输入: n = 3, k = 0输出: 1解释: 只有数组 [1,2,3] 包含了从1到3的整数并且正好拥有 0 个逆序...原创 2021-11-11 23:06:33 · 513 阅读 · 0 评论 -
2021-11-10提莫攻击
495. 提莫攻击难度简单259在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续duration秒。正式地讲,提莫在t发起发起攻击意味着艾希在时间区间[t, t + duration - 1](含t和t + duration - 1)处于中毒状态。如果提莫在中毒影响结束前再次攻击,中毒状态计时器将会重置,在新的攻击之后,中毒影响将会在duration秒后结束。...原创 2021-11-10 23:12:00 · 50 阅读 · 0 评论 -
2021-11-09祖玛游戏
488. 祖玛游戏难度困难208你正在参与祖玛游戏的一个变种。在这个祖玛游戏变体中,桌面上有一排彩球,每个球的颜色可能是:红色'R'、黄色'Y'、蓝色'B'、绿色'G'或白色'W'。你的手中也有一些彩球。你的目标是清空桌面上所有的球。每一回合:从你手上的彩球中选出任意一颗,然后将其插入桌面上那一排球中:两球之间或这一排球的任一端。 接着,如果有出现三个或者三个以上且颜色相同的球相连的话,就把它们移除掉。 如果这种移除操作同样导致出现三个或者...原创 2021-11-09 23:07:59 · 2708 阅读 · 0 评论 -
2021-11-08 猜数字游戏
299. 猜数字游戏难度中等208你在和朋友一起玩猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(称为 "Bulls", 公牛), 有多少位属于数字猜对了但是位置不对(称为 "Cows", 奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。给你一个秘密数字secret和朋友猜测的数字guess,请你返...原创 2021-11-08 22:20:58 · 128 阅读 · 0 评论 -
恭喜EDG 夺得冠军
268. 丢失的数字难度简单512给定一个包含[0, n]中n个数的数组nums,找出[0, n]这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失...原创 2021-11-06 21:34:21 · 222 阅读 · 0 评论 -
完全平方数
367. 有效的完全平方数难度简单285给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:falseclass Solution {public: bool isPerfectSquare(int num) { int x =..原创 2021-11-04 14:27:21 · 62 阅读 · 0 评论 -
11个小朋友一起分糖果
575. 分糖果难度简单175Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到糖的最多种类数。示例 1原创 2021-11-01 19:35:11 · 194 阅读 · 0 评论 -
路径交叉,有点难度
335. 路径交叉难度困难104给你一个整数数组distance。从X-Y平面上的点(0,0)开始,先向北移动distance[0]米,然后向西移动distance[1]米,向南移动distance[2]米,向东移动distance[3]米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。判断你所经过的路径是否相交。如果相交,返回true;否则,返回false。示例 1:输入:distance = [2,1,1,2]输出:t...原创 2021-10-29 13:49:57 · 181 阅读 · 0 评论 -
725. 分隔链表难度中等214给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等:任意两部分的
725. 分隔链表难度中等214给你一个头结点为head的单链表和一个整数k,请你设计一个算法将链表分隔为k个连续的部分。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。这k个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面的长度。返回一个由上述k部分组成的数组。示例 1:...原创 2021-09-22 20:54:54 · 244 阅读 · 0 评论 -
447. 回旋镖的数量
447. 回旋镖的数量难度中等174给定平面上n对互不相同的点points,其中points[i] = [xi, yi]。回旋镖是由点(i, j, k)表示的元组 ,其中i和j之间的距离和i和k之间的距离相等(需要考虑元组的顺序)。返回平面上所有回旋镖的数量。示例 1:输入:points = [[0,0],[1,0],[2,0]]输出:2解释:两个回旋镖为 [[1,0],[0,0],[2,0]] 和 [[1,0],[2,0],[0,0]]...原创 2021-09-13 12:16:08 · 86 阅读 · 0 评论 -
1787. 使所有区间的异或结果为零
1787. 使所有区间的异或结果为零难度困难72给你一个整数数组nums 和一个整数k 。区间[left, right](left <= right)的异或结果是对下标位于left和right(包括left和right)之间所有元素进行XOR运算的结果:nums[left] XOR nums[left+1] XOR ... XOR nums[right]。返回数组中要更改的最小元素数,以使所有长度为k的区间异或结果等于零。示例...原创 2021-05-25 13:54:22 · 328 阅读 · 0 评论 -
2021-05-12 子数组异或查询
1310. 子数组异或查询难度中等112有一个正整数数组arr,现给你一个对应的查询数组queries,其中queries[i] = [Li,Ri]。对于每个查询i,请你计算从Li到Ri的XOR值(即arr[Li]xorarr[Li+1]xor...xorarr[Ri])作为本次查询的结果。并返回一个包含给定查询queries所有结果的数组。示例 1:输入:arr = [1,3,4,8], queries = [[0,1],[1,2],...原创 2021-05-13 14:44:34 · 131 阅读 · 0 评论 -
2021-05-111734. 解码异或后的排列
1734. 解码异或后的排列难度中等95给你一个整数数组perm,它是前n个正整数的排列,且n是个奇数。它被加密成另一个长度为n - 1的整数数组encoded,满足encoded[i] = perm[i] XOR perm[i + 1]。比方说,如果perm = [1,3,2],那么encoded = [2,1]。给你encoded数组,请你返回原始数组perm。题目保证答案存在且唯一。示例 1:输入:encoded = [3,1...原创 2021-05-11 18:45:12 · 141 阅读 · 0 评论 -
2021-05-10请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
872. 叶子相似的树难度简单141请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列。举个例子,如上图所示,给定一棵叶值序列为(6, 7, 4, 9, 8)的树。如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个根结点分别为root1和root2的树是叶相似的,则返回true;否则返回false。示例 1:输入:root1 = [3,5,1,6,2,9,8,null,null,7,...原创 2021-05-10 21:24:34 · 349 阅读 · 0 评论