LeetCode刷题记录
leetcode刷题记录,不知道自己能坚持几天,但坚持几天是几天,有空就刷
幸运草时代狂想曲
这个作者很懒,什么都没留下…
展开
-
58.最后一个单词的长度
由若干单词组成,单词前后用一些空格字符隔开。最后一个单词是长度为 6 的“joyboy”。是指仅由字母组成、不包含任何空格字符的最大。最后一个单词是“World”,长度为 5。最后一个单词是“moon”,长度为 4。原创 2024-06-21 12:52:22 · 773 阅读 · 0 评论 -
412.Fizz Buzz
各个整数的 Fizz Buzz 表示,并用字符串数组。思路:根据题意模拟即可。原创 2024-06-21 12:31:47 · 45 阅读 · 0 评论 -
383. 赎金信
【代码】383. 赎金信。原创 2024-06-21 12:28:02 · 188 阅读 · 0 评论 -
520.检测大写字母
如果大写用法正确,返回。原创 2024-06-21 10:52:39 · 50 阅读 · 0 评论 -
389. 找不同
随机重排,然后在随机位置添加一个字母。'e' 是那个被添加的字母。,它们只包含小写字母。原创 2024-06-20 11:45:05 · 139 阅读 · 0 评论 -
506.相对名次
名次为 [1st, 2nd, 3rd, 4th, 5th]。名次为 [1st, 5th, 3rd, 2nd, 4th]。位运动员在比赛中的得分。的运动员得分最高,名次第。位运动员的获奖情况。原创 2024-06-17 17:44:08 · 366 阅读 · 0 评论 -
482.密钥格式化
字符串 S 被分成了 3 个部分,按照前面的规则描述,第一部分的字符可以少于给定的数量,其余部分皆为 2 个字符。短,但仍然必须包含至少一个字符。此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。字符串 S 被分成了两个部分,每部分 4 个字符;,仅由字母、数字字符和破折号组成。注意,两个额外的破折号需要删掉。个字符,除了第一组,它可以比。我们想要重新格式化字符串。给定一个许可密钥字符串。重新格式化的许可密钥。原创 2024-06-17 17:23:13 · 197 阅读 · 0 评论 -
628.三个数的最大乘积
在数组中找出由三个数组成的最大乘积,并输出这个乘积。原创 2024-06-17 12:51:10 · 270 阅读 · 0 评论 -
645.错误的集合
不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。原创 2024-06-17 11:31:01 · 221 阅读 · 0 评论 -
414.第三大的数
此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1。注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。第三大的数不存在, 所以返回最大的数 2。如果不存在,则返回数组中最大的数。给你一个非空数组,返回此数组中。第三大的数是 1。原创 2024-06-17 10:55:59 · 176 阅读 · 0 评论 -
2078.两栋颜色不同且距离最远的房子
房子 0 的颜色是颜色 1 ,房子 3 的颜色是颜色 6。房子 0 的颜色是颜色 1 ,房子 4 的颜色是颜色 3。房子 0 的颜色是颜色 0 ,房子 1 的颜色是颜色 1。上图中,颜色 1 标识成蓝色,颜色 8 标识成黄色,颜色 3 标识成绿色。栋房子整齐地排成一列,每栋房子都粉刷上了漂亮的颜色。两栋颜色不同且距离最远的房子是房子 0 和房子 3。两栋颜色不同且距离最远的房子是房子 0 和房子 4。两栋颜色不同且距离最远的房子是房子 0 和房子 1。原创 2024-06-15 17:26:01 · 344 阅读 · 0 评论 -
859.亲密字符串
你只能交换 s[0] = 'a' 和 s[1] = 'b' 生成 "ba",此时 s 和 goal 不相等。你可以交换 s[0] = 'a' 和 s[1] = 'b' 生成 "ba",此时 s 和 goal 相等。你可以交换 s[0] = 'a' 和 s[1] = 'a' 生成 "aa",此时 s 和 goal 相等。交换字母的定义是:取两个下标。,只要我们可以通过交换。原创 2024-06-15 16:54:20 · 245 阅读 · 0 评论 -
14.最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。输入不存在公共前缀。原创 2024-06-15 13:04:24 · 299 阅读 · 0 评论 -
657. 机器人能否返回原点
机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true。此外,假设每次移动机器人的移动幅度相同。给出它的移动顺序,判断这个机器人在完成移动后是否在。如果机器人在完成所有动作后返回原点,则返回。在二维平面上,有一个机器人从原点。机器人“面朝”的方向无关紧要。将始终使机器人向右移动一次,原创 2024-06-13 11:35:02 · 268 阅读 · 0 评论 -
2833.距离原点最远的点
思路:按照题意模拟行走路线即可,L就往左一步,R就往右一步,主要就是判断_是往左走还是往右走的问题,如果想要离原点更远,那一定是往现在行走了更多的方向继续走,即如果moves中L多,那除开所有的_,最后所在的位置一定在原点的左边,此时让所有的_都变成L,继续向左走,那就能跟原点拉开更大的距离;基于以上思路,我们可以先比较moves中L和R的数量,用一个变量flag记录所有的_应该变成L还是R,如果是L,flag=-1;可以到达的距离原点 0 最远的点是 -3 ,移动的序列为 "LLRLLLR"。原创 2024-06-12 13:24:46 · 289 阅读 · 0 评论 -
2103. 环和杆
我们也可以反过来判断每个颜色出现的杆子数,用三个数组记录每种颜色出现在哪些杆子上,然后遍历每根杆子,如果这根杆子同时在三个数组中都出现,这也就说明这根杆子上三种颜色都有,满足要求,记录下来即可。个环,红色的环在编号为 3 的杆上,绿色的环在编号为 2 的杆上,蓝色的环在编号为 1 的杆上。个环,环的颜色可以是红、绿、蓝中的一种。- 编号 0 的杆上有 3 个环,集齐全部颜色:红、绿、蓝。- 编号 0 的杆上有 6 个环,集齐全部颜色:红、绿、蓝。只给了一个环,因此,不存在集齐全部三种颜色环的杆。原创 2024-06-12 11:21:39 · 245 阅读 · 0 评论 -
3146.两个字符的排列差
中每个字符在两个字符串中位置的绝对差值之和。,每个字符串中的字符都不重复,且。原创 2024-06-12 10:53:49 · 121 阅读 · 0 评论 -
2810.故障键盘
因为第 4 个字符是 'i' ,屏幕上的文本被反转,变成 "rts"。因为第 3 个字符是 'i' ,屏幕上的文本被反转,变成 "op"。因为第 4 个字符是 'i' ,屏幕上的文本被反转,变成 "po"。输入第 6 个字符后,屏幕上的文本是: "rtsng"。输入第 8 个字符后,屏幕上的文本是:"ponter"。输入第 5 个字符后,屏幕上的文本是:"rtsn"。输入第 5 个字符后,屏幕上的文本是:"pon"。输入第 2 个字符后,屏幕上的文本是:"po"。原创 2024-06-09 15:42:50 · 118 阅读 · 0 评论 -
2315. 统计星号
观察示例可以发现竖线一定是成对出现的,共有偶数根竖线,第奇数根竖线表示一个竖线对的开始,第偶数根竖线表示一个竖线对的结束,那么问题就很简单了,我们每读到一根竖线,LineNum就+1,每次出现了*号,判断一下LineNum是否是偶数,也就是这个*号是否出现在竖线对外边,若是则number+1,最后返回number。思路:这道题主要就是如何判断竖线对,统计竖线对之外的*号数量。不在竖线对之间总共有 2 个星号,所以我们返回 2。不在竖线对之间的字符加粗加斜体后,得到字符串:"在这个例子中,s 中没有星号。原创 2024-06-09 15:18:10 · 237 阅读 · 0 评论 -
2903. 找出满足差值条件的下标 I
abs(0 - 0) >= 0 且 abs(nums[0] - nums[0]) >= 0。abs(0 - 3) >= 2 且 abs(nums[0] - nums[3]) >= 4。[0,1]、[1,0] 和 [1,1] 也是符合题目要求的答案。在示例中,可以证明无法找出 2 个满足所有条件的下标。在示例中,可以选择 i = 0 和 j = 0。因此,[0,0] 是一个符合题目要求的答案。因此,[0,3] 是一个符合题目要求的答案。[3,0] 也是符合题目要求的答案。因此,返回 [-1,-1]。原创 2024-06-09 14:55:54 · 327 阅读 · 0 评论 -
821. 字符的最短距离
对于下标 4 ,出现在下标 3 和下标 5 处的 'e' 都离它最近,但距离是一样的 abs(4 - 3) == abs(4 - 5) = 1。距下标 0 最近的 'e' 出现在下标 3 ,所以距离为 abs(0 - 3) = 3。距下标 1 最近的 'e' 出现在下标 3 ,所以距离为 abs(1 - 3) = 2。距下标 8 最近的 'e' 出现在下标 6 ,所以距离为 abs(8 - 6) = 2。字符 'e' 出现在下标 3、5、6 和 11 处(下标从 0 开始计数)。原创 2024-06-08 23:39:17 · 292 阅读 · 0 评论 -
2710. 移除字符串中的尾随零
思路:要删除尾随的0,从前往后有点难处理,所以我们先将字符串逆序,然后再开始遍历,如果遍历到0,length+1,表示未遂0的个数;一旦遍历到非0元素就直接结束循环,已经找到所以的尾随0了,然后返回nums[0:len(num)-length],除去最后尾随0的长度,把前面的字符返回即可。整数 "51230100" 有 2 个尾随零,移除并返回整数 "512301"。整数 "123" 不含尾随零,返回整数 "123"。,请你以字符串形式返回不含尾随零的整数。给你一个用字符串表示的正整数。原创 2024-06-07 16:09:02 · 143 阅读 · 0 评论 -
1614. 括号的最大嵌套深度
不需要考虑除了(和)之外的其他字符,如果是左括号就入栈,此时深度+1,若是右括号就出栈,深度-1,记录下出现的最大深度即可。思路:老朋友了,括号匹配问题,用栈来解决。1047.删除字符串中的所有相邻重复项。数字 8 在嵌套的 3 层括号中。数字 3 在嵌套的 3 层括号中。1021.删除最外层的括号。嵌套深度是嵌套括号的。原创 2024-06-07 15:47:45 · 197 阅读 · 0 评论 -
1021. 删除最外层的括号
输入字符串为 "(()())(())(()(()))",原语化分解得到 "(()())" + "(())" + "(()(()))",删除每个部分中的最外层括号后得到 "()()" + "()" + "()(())" = "()()()()(())"。输入字符串为 "(()())(())",原语化分解得到 "(()())" + "(())",删除每个部分中的最外层括号后得到 "()()" + "()" = "()()()"。输入字符串为 "()()",原语化分解得到 "()" + "()",原创 2024-06-07 15:35:24 · 306 阅读 · 0 评论 -
3019. 按键变更的次数
从 s[0] = 'a' 到 s[1] = 'A',不存在按键变更,因为不计入 caps lock 或 shift。从 s[2] = 'b' 到 s[3] = 'B',不存在按键变更,因为不计入 caps lock 或 shift。从 s[4] = 'c' 到 s[5] = 'C',不存在按键变更,因为不计入 caps lock 或 shift。不存在按键变更,因为这个过程中只按下字母 'a' 和 'A' ,不需要进行按键变更。从 s[1] = 'A' 到 s[2] = 'b',按键变更。原创 2024-06-07 15:01:14 · 317 阅读 · 0 评论 -
1047. 删除字符串中的所有相邻重复项
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。还是可以借助栈来完成,遍历到某个元素的时候,如果栈中为空,说明其前面没有元素,它是首个元素,或者他前面的元素都两两消除了,那就直接入栈;若栈不为空,说明栈内的元素都是无法两两消除的,那就检查栈顶元素是否能和它消除。思路:这道题要消除字符串中相邻的两个重复字母,也就是遍历到某个字母的时候,我们需要判断前一个字母是否和它相同,暴力模拟感觉可以,但非常麻烦,当数据量一大估计会超时。原创 2024-06-05 19:02:56 · 253 阅读 · 0 评论 -
20.有效的括号
判断字符串是否有效。原创 2024-06-05 18:45:13 · 176 阅读 · 0 评论 -
1844. 将所有数字用字符替换
是一个数字,函数返回字母表中。请你替换所有数字以后,将字符串。下标处为小写英文字母,原创 2024-06-05 16:10:37 · 276 阅读 · 0 评论 -
3168. 候诊室中的最少椅子数
椅子数,那我们就假设椅子数没有限制,只要有人进来,我们就给他一把椅子,当人出去之后,新进来的人数少于现有的椅子数,那就不需要再添新的椅子,因此,我们可以得到我们需要放置的最少椅子数就是最多的连续进来人数,进入用'E'表示,故我们只需要找到字符串中E连续出现的最大次数即可。每秒后都有一个顾客进入候诊室,没有人离开。因此,至少需要 7 把椅子。假设候诊室里有 2 把椅子。假设候诊室里有 3 把椅子。思路:题目要求每位进入候诊室的顾客都能有椅子坐的。返回保证每位进入候诊室的顾客都能有椅子坐的。原创 2024-06-05 15:44:48 · 279 阅读 · 0 评论 -
151. 反转字符串中的单词
思路:给定字符串,要反转其中的单词,首先单词是由几个不带空格的字母组成,但给定的字符串可能在前后都有空格,首先用strip()去除字符串左右两端的空格,方便处理;然后遍历字符串,可以用空格来判断是否有一个单词,当遇到了一个空格(不是连续的空格)且前一个元素是字母说明有一个单词,加入reuslt中,获取到所有的单词之后,对这个列表进行reversed反转操作,然后遍历列表,把答案写入字符串res中。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。中使用至少一个空格将字符串中的。原创 2024-06-05 14:28:00 · 264 阅读 · 0 评论 -
541. 反转字符串 II
第二个条件,剩余的字符数量是相对于前面已经进行了一次2k字符的操作来说的,若不足k个,说明在2k字符里,它属于前k个字符那一段,因此一定是奇数次k,故会进行反转,满足;但仔细观察可以发现,每2k个字符,对前k个字符反转,对后k个字符不反转,事实上就是每k个字符进行一次操作,只不过操作的内容不一样罢了,因此我们可以设置一个标识符flag,遍历s的步长设置为k,在奇数次k的时候进行反转,而偶数次k的时候不反转。在这里用到的S[i:i+k]也就是取s中下标为i到i+k的字符,其中不包括第i+k个字符;原创 2024-06-05 13:51:56 · 229 阅读 · 0 评论 -
344. 反转字符串
反转那就需要交换2个字符,那就可以想到采用双指针,第一次交换首尾的字符,然后左边的指针往右移1位置,右边的指针往左移1位,继续交换新的2个元素,直到左指针移动到右指针右边,表示左边的元素都已经和右边的元素交换了一遍了,结束循环。思路:反转 字符串,并且这个字符串是以数组的形式给你的(其实字符串也就是特殊的数组),题目要求不能使用额外的辅助空间,那就只能在这个数组上操作。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组。不要给另外的数组分配额外的空间,你必须。原创 2024-06-05 10:53:25 · 112 阅读 · 0 评论 -
3079. 求出加密整数的和
请你返回数组中所有元素加密后的。原创 2024-06-03 20:51:13 · 215 阅读 · 0 评论 -
3162. 优质数对的总数 I
【代码】3162. 优质数对的总数 I。原创 2024-06-03 19:52:14 · 235 阅读 · 0 评论 -
3131. 找出与数组相加的整数 I
当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组。为负数,则表现为元素值的减少。给你两个长度相等的数组。中的每个元素都与变量。原创 2024-06-03 19:46:35 · 259 阅读 · 0 评论 -
3074. 重新分装苹果
个包裹中的苹果重新分装到箱子中,返回你需要选择的箱子的。总容量大于或等于苹果的总数,所以可以完成重新分装。,同一个包裹中的苹果可以分装到不同的箱子中。使用容量为 4 和 5 的箱子。请你选择一些箱子来将这。原创 2024-06-03 19:34:11 · 130 阅读 · 0 评论 -
69. x 的平方根
8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。不允许使用任何内置指数函数和算符,例如。由于返回类型是整数,结果只保留。原创 2024-06-03 16:13:49 · 280 阅读 · 0 评论 -
35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为。原创 2024-06-03 15:20:06 · 314 阅读 · 0 评论 -
844. 比较含退格的字符串
思路:直截了当,按题目意思处理即可。用list来存处理后的字符串,如果非#,放入list中,否则pop弹出当前list中的最后一个元素,遍历结束后的list就是按要求处理后得到的字符串情况;最后比较两个字符串处理后得到的list是否相同。两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回。s 会变成 "c",但 t 仍然是 "b"。如果对空文本输入退格字符,文本继续为空。s 和 t 都会变成 "ac"。s 和 t 都会变成 ""。原创 2024-06-03 14:41:56 · 133 阅读 · 0 评论 -
283. 移动零
思路:不考虑太多,很直观的解法就是两层for循环,如果元素是0,则把它往后移动。很相像,要求在不复制数组的情况下原地对数组进行操作,移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。原创 2024-06-03 14:09:32 · 267 阅读 · 0 评论