05 2020 档案
摘要:79. 最长公共子串 中文English 给出两个字符串,找到最长公共子串,并返回其长度。 样例 样例 1: 输入: "ABCD" and "CBCE" 输出: 2 解释: 最长公共子串是 "BC" 样例 2: 输入: "ABCD" and "EACB" 输出: 1 解释: 最长公共子串是 'A'
阅读全文
摘要:136. 分割回文串 中文English 给定字符串 s, 需要将它分割成一些子串, 使得每个子串都是回文串. 返回所有可能的分割方案. 样例 样例 1: 输入: "a" 输出: [["a"]] 解释: 字符串里只有一个字符, 也就只有一种分割方式 (就是它本身) 样例 2: 输入: "aab" 输
阅读全文
摘要:553. 炸弹袭击 中文English 给定一个二维矩阵, 每一个格子可能是一堵墙 W,或者 一个敌人 E 或者空 0 (数字 '0'), 返回你可以用一个炸弹杀死的最大敌人数. 炸弹会杀死所有在同一行和同一列没有墙阻隔的敌人。 由于墙比较坚固,所以墙不会被摧毁. 样例 样例1 输入: grid =
阅读全文
摘要:512. 解码方法 中文English 有一个消息包含A-Z通过以下规则编码 'A' -> 1 'B' -> 2 ... 'Z' -> 26 现在给你一个加密过后的消息,问有几种解码的方式 样例 样例 1: 输入: "12" 输出: 2 解释: 它可以被解码为 AB (1 2) 或 L (12).
阅读全文
摘要:108. 分割回文串 II 中文English 给定字符串 s, 需要将它分割成一些子串, 使得每个子串都是回文串. 最少需要分割几次? 样例 样例 1: 输入: "a" 输出: 0 解释: "a" 本身就是回文串, 无需分割 样例 2: 输入: "aab" 输出: 1 解释: 将 "aab" 分割
阅读全文
摘要:76. 最长上升子序列 中文English 给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。 样例 样例 1: 输入: [5,4,1,2,3] 输出: 3 解释: LIS 是 [1,2,3] 样例 2: 输入: [4,2,4,5,3,7] 输出: 4 解释: LIS 是 [2,4,
阅读全文
摘要:200. 最长回文子串 中文English 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。 样例 样例 1: 输入:"abcdzdcab" 输出:"cdzdc" 样例 2: 输入:"aba" 输出:"aba" 挑战 O(n2) 时间复杂度的算
阅读全文
摘要:114. 不同的路径 中文English 有一个机器人的位于一个 m × n 个网格左上角。 机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。 问有多少条不同的路径? 样例 Example 1: Input: n = 1, m = 3 Output: 1 Explanation:
阅读全文
摘要:669. 换硬币 中文English 给出不同面额的硬币以及一个总金额. 写一个方法来计算给出的总金额可以换取的最少的硬币数量. 如果已有硬币的任意组合均无法与总金额面额相等, 那么返回 -1. 样例 样例1 输入: [1, 2, 5] 11 输出: 3 解释: 11 = 5 + 5 + 1 样例2
阅读全文
摘要:8. 旋转字符串 中文English 给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)。 样例 样例 1: 输入: str="abcdefg", offset = 3 输出: str = "efgabcd" 样例解释: 注意是原地旋转,即str旋转后为"e
阅读全文
摘要:147. 水仙花数 中文English 水仙花数的定义是,这个数等于他每一位数上的幂次之和 见维基百科的定义 比如一个3位的十进制整数153就是一个水仙花数。因为 153 = 13 + 53 + 33。 而一个4位的十进制数1634也是一个水仙花数,因为 1634 = 14 + 64 + 34 +
阅读全文
摘要:1131. 排列中的函数 中文English 从1~nn 的全排列共有 n!n! 种。例如 n = 3n=3,共有 3!=63!=6 种排列如下: 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 对于 nn 的任意一种排列 AA,A_xAx 表示在第 xx 个位置上的数
阅读全文
摘要:78. 最长公共前缀 中文English 给k个字符串,求出他们的最长公共前缀(LCP) 样例 样例 1: 输入: "ABCD", "ABEF", "ACEF" 输出: "A" 样例 2: 输入: "ABCDEFG", "ABCEFG" and "ABCEFA" 输出: "ABC" class So
阅读全文
摘要:61. 搜索区间 中文English 给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[-1, -1] 样例 例1: 输入: [] 9 输出: [-1,-1] 例2: 输入: [5, 7, 7, 8, 8, 10] 8 输出: [3,
阅读全文
摘要:30. 插入区间 中文English 给出一个无重叠的按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 样例 样例 1: 输入: (2, 5) into [(1,2), (5,9)] 输出: [(1,9)] 样例 2:
阅读全文
摘要:194. 寻找单词 中文English 给定一个字符串str,和一个字典dict,你需要找出字典里的哪些单词是字符串的子序列,返回这些单词。 样例 例1: 输入: str="bcogtadsjofisdhklasdj" dict=["book","code","tag"] 输出: ["book"]
阅读全文
摘要:391. 数飞机 中文English 给出飞机的起飞和降落时间的列表,用序列 interval 表示. 请计算出天上同时最多有多少架飞机? 样例 样例 1: 输入: [(1, 10), (2, 3), (5, 8), (4, 7)] 输出: 3 解释: 第一架飞机在1时刻起飞, 10时刻降落. 第二
阅读全文
摘要:387. 最小差 中文English 给定两个整数数组(第一个是数组 A,第二个是数组 B),在数组 A 中取 A[i],数组 B 中取 B[j],A[i] 和 B[j]两者的差越小越好(|A[i] - B[j]|), 返回最小差。 样例 样例 1: 输入: A = [3, 6, 7, 4], B
阅读全文
摘要:392. 打劫房屋 中文English 假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。 给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打
阅读全文
摘要:363. 接雨水 中文English 给出 n 个非负整数,代表一张X轴上每个区域宽度为 1 的海拔图, 计算这个海拔图最多能接住多少(面积)雨水。 样例 样例 1: 输入: [0,1,0] 输出: 0 样例 2: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 挑战 O(n
阅读全文
摘要:187. 加油站 中文English 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。 你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。 求可环绕环路一周时出发的加油站的
阅读全文
摘要:182. 删除数字 中文English 给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。 找到删除 k 个数字之后的最小正整数。 N <= 240, k <= N 样例 样例 1: 输入: A = "178542", k
阅读全文
摘要:162. 矩阵归零 中文English 给定一个m×n矩阵,如果一个元素是0,则将其所在行和列全部元素变成0。 需要在原矩阵上完成操作。 样例 样例 1: 输入:[[1,2],[0,3]] 输出:[[0,2],[0,0]] 样例 2: 输入:[[1,2,3],[4,0,6],[7,8,9]] 输出:
阅读全文
摘要:116. 跳跃游戏 中文English 给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你是否能到达数组的最后一个位置。 样例 样例 1 输入 : [2,3,1,1,4] 输出 : true 样例 2 输入 : [3,2,1,0,4]
阅读全文
摘要:1.字符串拼接,join和列表的配合使用 a = '' d = ['d','h','t','dg','gh'] a = a.join(i for i in d) print(a) 运行结果: PS D:\Python\Code_Python\lintcode> & D:/python_install
阅读全文
摘要:171. 乱序字符串 中文English 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。 样例 样例1: 输入:["lint", "intl", "inlt", "code"] 输出:["lint
阅读全文
摘要:149. 买卖股票的最佳时机 中文English 假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。 样例 样例1 输入: [3, 2, 3, 1, 2] 输出: 1 说明:你可以在第三天买入,第四天卖出,利
阅读全文
摘要:150. 买卖股票的最佳时机 II 中文English 给定一个数组 prices 表示一支股票每天的价格. 你可以完成任意次数的交易, 不过你不能同时参与多个交易 (也就是说, 如果你已经持有这支股票, 在再次购买之前, 你必须先卖掉它). 设计一个算法求出最大的利润. 样例 样例 1: 输入:
阅读全文
摘要:125. 背包问题 II 中文English 有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小和数组 V 表示每个物品的价值. 问最多能装入背包的总价值是多大? 样例 样例 1: 输入: m = 10, A = [2, 3, 5, 7], V = [1, 5, 2, 4]
阅读全文
摘要:152. 组合 中文English 给定两个整数 n 和 k. 返回从 1, 2, ... , n 中选出 k 个数的所有可能的组合. 样例 样例 1: 输入: n = 4, k = 2 输出: [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]] 样例 2: 输入: n =
阅读全文
摘要:140. 快速幂 中文English 计算an % b,其中a,b和n都是32位的非负整数。 样例 例如 231 % 3 = 2 例如 1001000 % 1000 = 0 挑战 O(logn) class Solution: """ @param a: A 32bit integer @param
阅读全文
摘要:148. 颜色分类 中文English 给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。 我们可以使用整数 0,1 和 2 分别代表红,白,蓝。 样例 样例 1 输入 : [1, 0, 1, 2] 输出 : [0, 1, 1, 2]
阅读全文
摘要:144. 交错正负数 中文English 给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。 样例 样例 1 输入 : [-1, -2, -3, 4, 5, 6] 输出 : [-1, 5, -2, 4, -3, 6] 解释 : 或者仍和满足条件的答案 挑战 完成题目,且不消耗额外的空
阅读全文
摘要:83. 落单的数 II 中文English 给出3*n + 1 个非负整数,除其中一个数字之外其他每个数字均出现三次,找到这个数字。 样例 样例 1: 输入: [1,1,2,3,3,3,2,2,4,1] 输出: 4 样例 2: 输入: [2,1,2,2] 输出: 1 挑战 一次遍历,常数级的额外空间
阅读全文
摘要:124. 最长连续序列 中文English 给定一个未排序的整数数组,找出最长连续序列的长度。 样例 样例 1 输入 : [100, 4, 200, 1, 3, 2] 输出 : 4 解释 : 这个最长的连续序列是 [1, 2, 3, 4]. 返回所求长度 4 说明 要求你的算法复杂度为O(n) cl
阅读全文
摘要:59. 最接近的三数之和 中文English 给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。 样例 例1: 输入:[2,7,11,15],3 输出:20 解释: 2+7+11=20 例2: 输入:[-1,2,1,-4],1 输出:2 解释: -
阅读全文
摘要:57. 三数之和 中文English 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。 样例 例1: 输入:[2,7,11,15] 输出:[] 例2: 输入:[-1,0,1,2,-1,-4] 输出:[[-1, 0, 1],[-1, -1,
阅读全文
摘要:23. 字典中的子序列 中文English 给一字串s和单词的字典dict,请返回字典中所有是s的子序列的单词。 子序列的定义是:如果字符串s通过去掉部分字母可以变成字符串t,那么t是s的子序列 样例 样例 1: 输入:"lintcode",["de","ding","co","code","lin
阅读全文
摘要:17. 子集 中文English 给定一个含不同整数的集合,返回其所有的子集。 样例 样例 1: 输入:[0] 输出: [ [], [0] ] 样例 2: 输入:[1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 挑战 你可
阅读全文
摘要:1819. 最长双交替子串 中文English 给定一个长度为NN且只包含a和b的字符串SS。你需要找出最长的子串长度,使得其中不包含三个连续的字母。即,找出不包含aaa或bbb的最长子串长度。注意SS是其本身的子串。 样例 样例1 输入: "baaabbabbb" 输出: 7 说明: "aabba
阅读全文
摘要:1881. 飞机座位 中文English 您的任务是为四口之家尽可能多的分配座位。一个四口之家必须占领一排当中连续的四个座位。过道上的座位(例如2C和2D)不被认为是彼此相邻的。一家人被过道分开是可以的,但在这种情况下必须每一边坐两个。显然,座位不可以分配给一个以上的家庭。 编写一个函数 class
阅读全文
摘要:1878. 旋转数字 中文English 我们称X为好数当整个数字绕平面内任一点旋转180°之后仍是其本身,例如“1”,“2”,“0”,"12021","69","96"。特别要注意的是,我们使用的数字跟我们在红绿灯上使用的是一样的。给你长度n,我们需要统计长度为n的好数有多少个。 样例 输入: n
阅读全文
摘要:1876. 外星人字典(简单) 中文English 某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则
阅读全文
摘要:1859. 最小振幅 中文English 给定一个由N个整数组成的数组A,一次移动,我们可以选择此数组中的任何元素并将其替换为任何值。数组的振幅是数组A中的最大值和最小值之间的差。返回通过执行最多三次替换之后数组A的最小振幅 样例 示例 1 输入: A = [-9, 8, -1] 输出: 0 解释:
阅读全文
摘要:1854. 数组划分III 中文English 给你一个整数数组和一个整数K,请你判断数组是否可以划分为若干大小为k序列,并满足以下条件: 数组中的每一个数恰恰出现在一个序列中 一个序列中的数都是互不相同的 数组中相同元素是被划分到不同序列中的 如何可以划分,返回True,否则返回False。 数组
阅读全文
摘要:1823. 数组的最长前缀 中文English 给定两个正整数X和Y,以及正整数数组nums。我们需要找到一个最大的index,使得在nums[0], nums[1], .... , nums[index]中,出现X、Y的次数相等,且至少均出现一次,返回该index。若不存在这样的index,则返回
阅读全文
摘要:1822. 最小移动次数 中文English 给定由N个字母 'a' 和/或 'b' 组成的字符串S。 在一次操作中,可以将一个字母替换为另一个字母('a' 替换为 'b' 或 'b' 替换为 'a')。 返回得到不包含三个连续相同字母的字符串所需的最小操作次数。 样例 示例1: 输入: S = "
阅读全文
摘要:1820. 寻找字母 中文English 给定一个字符串str,返回字符串中字母顺序最大的而且同时在字符串中出现大写和小写的字母。如果不存在这样的字母,返回‘~‘。 样例 例 1: 输入:"aAbBcD" 输出:'B' 解释:因为c和D没有大小写同时出现,A和B都有大小写,但是B比A大,所以返回B。
阅读全文
摘要:1807. 斐波纳契数列简单 中文English Find the Nth number in Fibonacci sequence. A Fibonacci sequence is defined as follow: The first two numbers are 0 and 1. The
阅读全文
摘要:1745. 单调数列 中文English 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。 当给定的数组 A 是单调数组时返回 tr
阅读全文