leetcode
LeetCode刷题思路以及代码
Dataloading...
江湖夜雨十年灯
展开
-
【打卡】删除字符串中指定位置的内容
描述请编写代码,使用 StringBuffer 类中的相关方法来删除字符串中指定位置的内容。在本题的 Solution 类中有个 deleteString 方法,该方法有一个 String 类型的参数 str 和两个 int 类型的参数 indexStart, indexEnding。str 代表原始字符串,indexStart 代表需要删除内容的开始位置,indexEnding 代表需要删除内容的结束位置。该方法要删除原始字符串中指定位置的内容,并返回删除指定内容之后的字符串,返回值为 StringB原创 2022-04-25 15:27:53 · 2002 阅读 · 0 评论 -
【打卡】求 a 的 b 次方(Java 版)
描述请从标准输入流(控制台)中获取两个正整数 a,b,要求计算出 a 的 b 次方,并用 System.out.println 语句输出计算结果到标准输出流(控制台)。1≤a,b≤5样例评测机会将整个项目的代码编译为一个可执行的 Main 程序,并按照这样的方式执行你的代码 Main,你的代码需要从标准输入流(控制台)中读入数据 a,b,每个参数单独一行,计算出结果后并打印到标准输出流(控制台)中。样例一当 a = 2,b = 3 时,程序执行打印出的结果为:8解释:2 * 2 *原创 2022-04-21 14:01:07 · 1795 阅读 · 0 评论 -
【打卡】英语软件
描述小林是班级的英语课代表,他想开发一款软件来处理班上同学的成绩小林的软件有一个神奇的功能,能够通过一个百分数来反应你的成绩在班上的位置。“成绩超过班级 …% 的同学”。设这个百分数为 p,考了 s 分,则可以通过以下式子计算得出 p:p = ( 分数不超过 s 的人数 - 1) / 班级总人数 * 100%请你设计一下这个软件给出score数组代表第i个人考了score[i]分给出ask数组代表询问第i个人的成绩百分数每询问一次输出对应的成绩百分数,不需要输出百分号答案向下取整(为避免原创 2022-04-19 15:57:16 · 83 阅读 · 0 评论 -
【打卡】 去除重复数字
描述在类 Solution 中,含有名为 deDuplicate 的方法,传入 Integer 类型的数组的元素个数与大小都不超过 10000,包含 10000,且数组不能为空,要求最终返回的 Integer 数组中不包含重复的元素且按字典升序排列。请在类名为 Solution 中的 deDuplicate 方法的 // write your code here 下面编写你的代码。样例评测机会将你的代码编译为一个可执行文件 Main 并执行,代码将从输入文件夹中依次读入每个测试数据进行评测。你可以在原创 2022-04-18 10:08:31 · 482 阅读 · 0 评论 -
【打卡】二叉树的所有路径
描述给一棵二叉树,找出从根节点到叶子节点的所有路径。样例样例 1:输入:{1,2,3,#,5}输出:["1->2->5","1->3"]解释: 1 / \2 3 \ 5样例 2:输入:{1,2}输出:["1->2"]解释: 1 / 2 使用递归的DFS:from typing import ( List,)from lintcode import ( TreeNode,)"""De原创 2022-04-15 16:38:49 · 373 阅读 · 0 评论 -
【打卡】合并两棵二叉树
描述给出两棵二叉树,当你用其中一棵覆盖另一棵时,两棵树的一些节点会发生重叠,而其他节点则不会重叠。您需要将它们合并到一棵新的二叉树中。 合并的规则是如果两个节点重叠,则将节点值加起来作为合并节点的新值。 否则,非空的节点将用作新树的节点。样例样例1输入: {1,3,2,5}{2,1,3,#,4,#,7}输出:{3,4,5,5,4,#,7}解释:树 1 树 2 1原创 2022-04-15 14:30:36 · 139 阅读 · 0 评论 -
【打卡】平衡二叉树
描述给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。样例样例 1:输入:tree = {1,2,3}输出:true解释:如下,是一个平衡的二叉树。 1 / \ 2 3样例 2:输入:tree = {1,#,2,3,4}输出:false解释:如下,是一个不平衡的二叉树。1的左右子树高度差2 1原创 2022-04-13 15:51:11 · 63 阅读 · 0 评论 -
【打卡】字符串中的加粗单词
描述给定一组关键字“words”和一个字符串“S”,将所有关键字以S粗体显示。 和 标记之间的任何字母都将加粗。返回的字符串应该使用尽可能少的标签,当然这些标签应该组成一个有效的组合。words 长度在[0, 50].words[i] 长度在 [1, 10].S 长度在 [0, 500].words[i] 和 S 由小写字母组成样例样例 1:输入:["ab", "bc"]"aabcd"输出:"a<b>abc</b>d"解释: "a<b>原创 2022-04-11 11:26:37 · 162 阅读 · 0 评论 -
【打卡】包含重复值
描述给定一个整数数组,查找数组是否包含任何重复项。 如果数组中某个值至少出现两次,则函数应返回true,如果每个元素都是不同的,则返回false。样例样例 1:输入:nums = [1, 1]输出:True样例 2:输入:nums = [1, 2, 3]输出:Falsefrom typing import ( List,)class Solution: """ @param nums: the given array @return: if any原创 2022-03-30 10:46:23 · 284 阅读 · 0 评论 -
【打卡】不下降数组
描述给定一个包含 n 个整数的数组,你的任务是检测在改变至多一个元素的情况下,它是否可以变成不下降的。我们定义一个数组是不下降的,如果 array[i] <= array[i + 1] 对于每一个 i (1 <= i < n) 都成立。n 属于 [1, 10,000].样例样例1:输入: [4,2,3]输出: True解释: 你可以把第一个4修改为1从而得到一个不下降数组。样例2:输入: [4,2,1]输出: False解释: 你无法得到一个不下降数组,在修改至多原创 2022-03-29 14:21:24 · 339 阅读 · 0 评论 -
【打卡】合并两个排序的间隔列表
描述合并两个已排序的区间列表,并将其作为一个新的有序区间列表返回。新的区间列表应该通过拼接两个列表的区间并按升序排序。同一个列表中的区间一定不会重叠。不同列表中的区间可能会重叠。区间列表:0≤len(list1),len(list2)≤10000区间列表:0 \leq \text{len}(\textit{list1}), \text{len}(\textit{list2}) \leq 10000区间列表:0≤len(list1),len(list2)≤10000列表元素:1≤list1[i],原创 2022-03-28 13:10:40 · 548 阅读 · 0 评论 -
【打卡】数组划分 I
描述给一个有 2n 个整数的数组,你的任务是把这些整数分成 n 组,如(a1, b1),(a2, b2),…,(an, bn)。并且使得 i 从 1 到 n 的 min(ai, bi)之和尽可能的大。n 是一个正整数,且范围为 [1, 10000].数组中的元素范围为[-10000, 10000]。样例样例1:输入: [1,4,3,2]输出: 4解释: n 是 2, 最大的数对和为 4 = min(1, 2) + min(3, 4).样例 2:输入: [5,6]输出: 5解释:原创 2022-03-27 18:56:08 · 186 阅读 · 0 评论 -
【打卡】链表节点计数
描述计算链表中有多少个节点.样例样例 1: 输入: 1->3->5->null 输出: 3 样例解释: 返回链表中结点个数,也就是链表的长度.样例 2: 输入: null 输出: 0 样例解释: 空链表长度为0from lintcode import ( ListNode,)"""Definition of ListNode:class ListNode(object): def __init__(self, val,原创 2022-03-26 11:01:08 · 1476 阅读 · 0 评论 -
【打卡】 删除链表中的元素
描述删除链表中等于给定值 val 的所有节点。样例样例 1:输入:head = 1->2->3->3->4->5->3->null, val = 3输出:1->2->4->5->null样例 2:输入:head = 1->1->null, val = 1输出:nullfrom lintcode import ( ListNode,)"""Definition of ListNode:clas原创 2022-03-23 16:03:29 · 367 阅读 · 0 评论 -
【打卡】寻找缺失的数
描述给出一个包含 0 … N 中 N 个数的序列,找出0 … N 中没有出现在序列中的那个数。样例样例 1:输入:[0,1,3]输出:2样例 2:输入:[1,2,3]输出:0法一:如果没有时间和空间复杂度的限制,下面这个暴力遍历是可以做出来的from typing import ( List,)class Solution: """ @param nums: An array of integers @return: An integer原创 2022-03-21 23:04:52 · 130 阅读 · 0 评论 -
【打卡】更新字符串
描述编写 Python 代码,实现名为 str_update 函数。该函数将提取给定字符串前 7 个字符之后的内容,并在字符串后加上 ’ welcomes!’,最后返回更新后的字符串。请在 solution.py 中完成 str_update 函数的编写,我们会在 main.py 中通过导入的方式运行你的代码,检查最终结果是否正确。更改后字母间有空格字母需严格大小写样例测评机会通过执行 python main.py 来运行 main.py,运行后输出更新后的字符串,你可以在 main.py原创 2022-03-19 14:58:41 · 699 阅读 · 0 评论 -
【打卡】最小振幅
描述给定一个由N个整数组成的数组A,一次移动,我们可以选择此数组中的任何元素并将其替换为任何值。数组的振幅是数组A中的最大值和最小值之间的差。返回通过执行最多三次替换之后数组A的最小振幅。N是一个整数而且范围是: [2, 10000]A数组中的每一个元素都是整数而且范围是: [-50, 50]样例示例 1输入:A = [-9, 8, -1]输出: 0解释:可以将 -9 和 8 替换成-1,这样所有元素都等于 -1,所以振幅是0示例 2输入: A = [14, 10, 5原创 2022-03-16 10:55:12 · 154 阅读 · 0 评论 -
【打卡】第一个只出现一次的字符
描述给出一个字符串,找出第一个只出现一次的字符。假设只出现一次的字符数量大于等于1。样例Example 1: Input: "abaccdeff" Output: 'b' Explanation: There is only one 'b' and it is the first one.Example 2: Input: "aabccd" Output: 'b' Explanation: 'b' is the first one.辅助数组记录字符出现次数。clas原创 2022-03-12 20:54:39 · 231 阅读 · 0 评论 -
【打卡】三角形面积
描述平面上有一系列点。返回由其中三个点可以形成的三角形最大面积。3 <= points.length <= 50.点不会重复。-50 <= points[i][j] <= 50.结果误差在10^(-6)以内可以被认为是正确的。样例 1:输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释:这五个点如图所示,红色三角形面积最大。由于点最多只有50个,直接枚举所有三角形即可。我们使用叉积计算三角形面积。已知原创 2022-03-11 17:01:30 · 309 阅读 · 0 评论 -
N叉树的层序遍历
描述给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。例如,给定一个 3叉树 :返回其层序遍历:[ [1], [3,2,4], [5,6]]样例 1:输入:{1,3,2,4#2#3,5,6#4#5#6}输出:[[1],[3,2,4],[5,6]]解释:如上图样例 2:输入:{1,3,2#2#3}输出:[[1],[3,2]]解释: 1 / \ 3 2from typing import ( List,)fr原创 2022-03-09 10:46:55 · 233 阅读 · 0 评论 -
【打卡】岛的周长
描述给定一张用二维数组表示的网格地图,其中1表示陆地单元格,0表示水域单元格。网格地图中的单元格视为水平/垂直相连(斜向不相连)。这个网格地图四周完全被水域包围着,并且其中有且仅有一个岛(定义为一块或多块相连的陆地单元格)。这个岛不包含湖(定义为不和外围水域相连的水域单元格)。一个地图单元格是边长为1的一个正方形;网格地图是一个矩形,并且它的长和宽不超过100。你要做的是求出这个岛的周长。样例[[0,1,0,0], [1,1,1,0], [0,1,0,0], [1,1,0,0]]答案:16原创 2022-03-06 16:11:25 · 61 阅读 · 0 评论 -
【打卡】找数字II
描述给出两个数字 A 和 B,找出 A 与 B 之间所有的数(包括 A 和 B),使得这些数满足是 3 的倍数,返回这些数的和。样例 1:输入:A = 3, B = 4输出:3解释:只有3满足条件。样例 2:输入:A = 2, B = 7输出:9解释:3 和 6 满足条件,3 + 6 = 9。class Solution: """ @param a: The A @param b: The B @return: Returns the su原创 2022-03-02 15:58:57 · 69 阅读 · 0 评论 -
【打卡】落单的数
描述给出 2 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。n≤100样例 1:输入:A = [1,1,2,2,3,4,4]输出:3解释:仅3出现一次样例 2:输入:A = [0,0,1]输出:1解释:仅1出现一次from typing import ( List,)class Solution: """ @param a: An integer array @return: An intege原创 2022-03-02 15:49:58 · 56 阅读 · 0 评论 -
【打卡】两数之和
描述给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。样例 1:输入:numbers = [2,7,11,15]target = 9输出:[0,1]解释:numbers[0] + numbers[1] = 9样例 2:输入:numbers = [15,2,7,11]target = 9输出:[1,2]解释:numbers[1原创 2022-03-02 11:42:02 · 48 阅读 · 0 评论 -
【打卡】水仙花数
描述水仙花数的定义是,这个数等于他每一位数上的幂次之和比如一个3位的十进制整数153就是一个水仙花数。因为 153 = 13 + 53 + 33。而一个4位的十进制数1634也是一个水仙花数,因为 1634 = 14 + 64 + 34 + 44。给出n,找到所有的n位十进制水仙花数。样例 1:输入: 1输出: [0,1,2,3,4,5,6,7,8,9]样例 2:输入: 2输出: [] 样例解释: 没有2位数的水仙花数。from typing import ( List原创 2022-03-02 11:23:20 · 204 阅读 · 0 评论 -
【打卡】数组的最长前缀
描述给定两个正整数X和Y,以及正整数数组nums。我们需要找到一个最大的index,使得在nums[0], nums[1], … , nums[index]中,出现X、Y的次数相等,且至少均出现一次,返回该index。若不存在这样的index,则返回-1。示例 1:输入:X = 2Y = 4nums: [1, 2, 3, 4, 4, 3]输出: 3解释: 保证 2 和 4 出现相同次数的最长前缀是: {1, 2, 3, 4},所以你应该返回3。示例 2:输入:X = 7Y =原创 2022-02-25 11:48:29 · 108 阅读 · 0 评论 -
【打卡】找不同
描述给定两个只包含小写字母的字符串 s 和 t 。字符串 t 是由随机打乱字符顺序的字符串 s 在随机位置添加一个字符生成。找出在 t 中添加的字符。样例:输入:s = "abcd",t = "abcde"输出:'e'解释:'e' 是字符串t与字符串s相比较,新加入的字符.class Solution: """ @param s: a string @param t: a string @return: the letter that was added i原创 2022-02-24 17:21:06 · 203 阅读 · 0 评论 -
【打卡】子数组和为K
描述给定一个整数数组和一个整数k,你需要找到连续子数列的和为k的总个数。样例样例1输入: nums = [1,1,1] 和 k = 2输出: 2解释:子数组 [0,1] 和 [1,2]样例2输入: nums = [2,1,-1,1,2] 和 k = 3输出: 4解释:子数组 [0,1], [1,4], [0,3] and [3,4]这里[1,4]是指[1,2,3,4],[0,3]是[0,1,2,3]暴力求解:(因超出时长限制而不被采用)class Solution:原创 2022-02-22 14:34:51 · 354 阅读 · 0 评论 -
【打卡】位运算左移三位(Python 入门)
描述请从标准输入流(控制台)中获取一个自然数 n,请通过 print 语句输出 n 左移三位后的结果到标准输出流(控制台)。0≤n≤100000 ≤n≤100000≤n≤10000样例评测机会通过执行命令 python main.py 来执行你的代码。你的代码需要从标准输入流(控制台)中读入数据 n,计算出结果并打印到标准输出流(控制台)中。样例一当 n = 1 时,程序执行打印出的结果为:8样例二当 n = 0 时,程序执行打印出的结果为:0# write your code原创 2022-02-19 21:08:36 · 1046 阅读 · 0 评论 -
【打卡】字符串压缩(Python简单)
描述设计一种方法,通过给重复字符计数来进行基本的字符串压缩。例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。可以假设字符串仅包括 a-z 的大/小写字母。Example 1:Input: str = "aabcccccaaa"Output: "a2b1c5a3"Example 2:Input: str = "aabbcc"Output: "aabbcc"class Solution: """原创 2022-02-18 18:12:41 · 2214 阅读 · 0 评论 -
【打卡】翻转字符串(简单)
描述写一个方法,接受给定字符串作为输入,返回将这个字符串逐个字符翻转后的新字符串。样例 1:输入:"hello"输出:"olleh"样例 2:输入:"hello world"输出:"dlrow olleh"class Solution: """ @param s: a string @return: return a string """ def reverseString(self, s): # write your code h原创 2022-02-15 15:04:38 · 151 阅读 · 0 评论 -
【打卡】具有交替位的二进制数(简单)
描述给一个正整数,检查它的二进制表示是否具有交替位。即,两个相邻的位总是具有不同的值。样例 1:输入: 5输出: True解释:5的二进制表示为: 101样例 2:输入: 7输出: False解释:7的二进制表示为: 111.样例 3:输入: 11输出: False解释:11 的二进制表示为: 1011.样例 4:输入: 10输出: True解释:10 的二进制表示: 1010.class Solution: """ @param n: a原创 2022-02-12 13:37:50 · 96 阅读 · 0 评论 -
【打卡】硬币摆放(简单)
描述你有 n 枚硬币,想要摆放成阶梯形状,即第 k 行恰好有 k 枚硬币。给出 n,找到可以形成的完整楼梯行数。n 是一个非负整数,且在32位有符号整数范围内。class Solution: """ @param n: a non-negative integer @return: the total number of full staircase rows that can be formed """ def arrangeCoins(self, n):原创 2022-02-09 00:26:56 · 341 阅读 · 0 评论 -
【打卡】URL编码(简单)
描述给出一个代表网址 host 的字符串 base_url,和代表查询参数的数组 query_params,你需要返回带查询参数的完整 URL。查询参数由一些包含两个元素的数组组成,第一个元素代表参数,第二个元素代表该参数对应的值。现在需要你拼接两个部分得到完整的 URL。base_url 和查询参数字符串之间使用 ? 拼接,在查询参数的参数和值之间通过 = 拼接,各个查询参数之间使用 & 拼接。查询参数需要根据字典序排序。样例样例 1:输入:"https://www.lintcode原创 2022-02-07 23:22:27 · 422 阅读 · 0 评论 -
【打卡】会议室(简单)
描述给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。样例1输入: intervals = [(0,30),(5,10),(15,20)]输出: false解释:(0,30), (5,10) 和 (0,30),(15,20) 这两对会议会冲突样例2输入: intervals = [(5,8),(9,15)]输出: true解释:这两个时间段不会冲突"""Definition of Inter原创 2022-02-01 20:28:27 · 343 阅读 · 0 评论 -
【高频】终止进程
描述这个问题中. 每个进程都有一个唯一的 PID(进程id) 和 PPID(父进程id)。每个进程只有一个父进程,但可能有一个或多个子进程,这就像一个树形结构。并且只有一个进程的PPID是0,这意味着这个进程没有父进程。所有的pid都是不同的正整数。我们使用两个整数列表来表示进程列表,其中第一个列表包含每个进程的PID,第二个列表包含对应的PPID。现在给定这两个列表,以及一个你要终止(kill)的进程的ID,返回将在最后被终止的进程的PID列表。(当一个进程被终止时,它的所有子进程将被终止。返回的列原创 2022-01-28 00:09:35 · 518 阅读 · 0 评论 -
【打卡】多字符串查找(简单)
描述给出一个源字符串sourceString和一个目标字符串数组targetStrings,判断目标字符串数组中的每一个字符串是否是源字符串的子串样例样例 1:输入: sourceString = "abc" ,targetStrings = ["ab","cd"]输出: [true, false]样例 2:输入: sourceString = "lintcode" ,targetStrings = ["lint","code","codes"]输出: [true,true,false]原创 2022-01-24 18:01:07 · 148 阅读 · 0 评论 -
【打卡】二叉树的层次遍历(简单)
描述给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)首个数据为根节点,后面接着是其左儿子和右儿子节点值,"#"表示不存在该子节点。节点数量不超过20。样例 1:输入:tree = {1,2,3}输出:[[1],[2,3]]样例 2:输入:tree = {1,#,2,3} 输出:[[1],[2],[3]] """Definition of TreeNode:class TreeNode: def __init__(self, val):原创 2022-01-22 14:50:31 · 176 阅读 · 0 评论 -
【打卡】字典键值互换(Python)
样例一当 src 参数为以下值的时候:{'https://lintcode.com/problems/design-tinyurl':'http://tinyurl.com/4e9iAk',}程序执行打印出的结果为:{'http://tinyurl.com/4e9iAk': 'https://lintcode.com/problems/design-tinyurl'}样例二当 src 参数为以下值的时候:{‘https://www.lintcode.com/problem/2370/原创 2022-01-21 17:09:18 · 1110 阅读 · 0 评论 -
【打卡】你的第一个 Git Commit(简单)
https://www.lintcode.com/problem/2540/输入命令,按回车键执行+--------------- 任务进度 1 / 3 ----------------+ 新建分支 将本地的git repo里新建出一个叫做 new-branch 的分支+----------------------------------------------+#@Lintcodein/nobody[13:55:58]$cd my-repo#@Lintcodein/nobody/.原创 2022-01-19 14:01:04 · 612 阅读 · 0 评论