Leetcode
在leetcode上刷的一些算法题,跟大家分享
第二人生2
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode17. 电话号码的字母组合[TODO]
题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。来源:力扣(LeetCode)...原创 2020-02-25 19:23:37 · 116 阅读 · 0 评论 -
Leetcode100. 相同的树
题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:1 1/ \ / 2 3 2 3[1,2,3], [1,2,3]输出: true示例 2:输入:1 1/ 2 2[1,2],...原创 2020-02-12 20:19:16 · 120 阅读 · 0 评论 -
Leetcode977
题目给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= A.length <= 10000-10000 <= A[i] <= 10000...原创 2020-02-12 14:39:50 · 190 阅读 · 0 评论 -
Leetcode88.合并两个有序数组
题目给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 =...原创 2020-02-12 14:16:39 · 92 阅读 · 0 评论 -
Leetcode704. 二分查找
题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], ...原创 2020-01-14 08:59:55 · 328 阅读 · 0 评论 -
Leetcode28. 实现 strStr()
##题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle ...原创 2020-01-13 21:04:26 · 95 阅读 · 0 评论 -
Leetcode21. 合并两个有序链表
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists著作...原创 2020-01-13 20:31:50 · 118 阅读 · 0 评论 -
Leetcode20. 有效的括号
##题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入...原创 2020-01-13 20:03:37 · 102 阅读 · 0 评论 -
Leetcode14. 最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣(LeetCode)链接:https://...原创 2020-01-13 17:03:33 · 104 阅读 · 0 评论 -
Leetcode13. 罗马数字转整数
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 ...原创 2020-01-13 16:30:03 · 113 阅读 · 0 评论 -
12. 整数转罗马数字
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两...原创 2020-01-13 15:53:59 · 113 阅读 · 0 评论 -
Leetcode29. 两数相除
题目给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均为 32 ...原创 2020-01-13 15:21:14 · 124 阅读 · 0 评论 -
Leetcode693. 交替位二进制数
题目给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例 3:输入: 11输出: False解释:11的二进制数是: 1011示例 4:输入: 10输出: True解释:10的二进制数...原创 2020-01-12 20:31:32 · 136 阅读 · 0 评论 -
326. 3的幂
题目给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/powe...原创 2020-01-12 20:14:11 · 116 阅读 · 0 评论 -
Leetcode342. 4的幂
题目给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-of-four著作权归领扣网络所有。商业转载请联系官方...原创 2020-01-12 20:14:03 · 188 阅读 · 0 评论 -
Leetcode461. 汉明距离
题目两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0)来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ha...原创 2020-01-12 19:49:09 · 120 阅读 · 0 评论 -
Leetcode231. 2的幂
题目给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-of-two著作权归领扣网络所有。...原创 2020-01-12 19:29:37 · 143 阅读 · 0 评论 -
Leetcode191. 位1的个数
题目编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:000000000000000000000000100000...原创 2020-01-12 19:06:50 · 270 阅读 · 1 评论 -
Leetcode7. 整数反转
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCo...原创 2020-01-12 18:54:21 · 103 阅读 · 0 评论 -
Leetcode516. 最长回文子序列
题目给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。示例 1:输入:“bbbab”输出:4一个可能的最长回文子序列为 “bbbb”。示例 2:输入:“cbbd”输出:2一个可能的最长回文子序列为 “bb”。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic...原创 2020-01-12 15:59:34 · 205 阅读 · 0 评论 -
Leetcode647. 回文子串[动态规划]
题目给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: “abc”输出: 3解释: 三个回文子串: “a”, “b”, “c”.示例 2:输入: “aaa”输出: 6说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.注意:输入的...原创 2020-01-12 15:52:49 · 152 阅读 · 0 评论 -
Leetcode5. 最长回文子串[动态规划]
题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-subs...转载 2020-01-12 15:50:33 · 131 阅读 · 0 评论 -
Leetcode259. 较小的三数之和
题目给定一个长度为 n 的整数数组和一个目标值 target,寻找能够使条件nums[i] + nums[j] + nums[k] < target 成立的三元组 i, j, k 个数(0 <= i < j < k < n)。示例:输入: nums = [-2,0,1,3], target = 2输出: 2解释: 因为一共有两个三元组满足累加和小于 2:...原创 2020-01-12 13:08:57 · 448 阅读 · 0 评论 -
Leetcode242. 有效的字母异位词
题目给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?...原创 2020-01-11 20:22:01 · 122 阅读 · 0 评论 -
Leetcode67. 二进制求和
题目给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-binary...原创 2020-01-11 19:51:40 · 177 阅读 · 0 评论 -
Leetcode415. 字符串相加
题目给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。来源:力扣(LeetCode)链接:https://leetcode-cn.com...原创 2020-01-11 19:50:57 · 252 阅读 · 0 评论 -
Leetcode66. 加一
题目给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。来源:力...原创 2020-01-11 19:50:42 · 109 阅读 · 0 评论 -
Leetcode989. 数组形式的整数加法
题目对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。示例 1:输入:A = [1,2,0,0], K = 34输出:[1,2,3,4]解释:1200 + 34 = 1234示例 2:输入:A = [2,7,4], K = 1...原创 2020-01-11 19:14:18 · 247 阅读 · 0 评论 -
Leetcode137. 只出现一次的数字 II
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro...原创 2020-01-11 16:50:32 · 125 阅读 · 0 评论 -
Leetcode260. 只出现一次的数字 III
题目给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]注意:结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?来源:力扣(LeetCode)链接:https://leet...原创 2020-01-11 16:21:53 · 152 阅读 · 0 评论 -
Leetcode136. 只出现一次的数字
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sin...原创 2020-01-11 15:40:04 · 107 阅读 · 0 评论 -
Leetcode268. 缺失数字
题目给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...原创 2020-01-11 15:35:09 · 119 阅读 · 0 评论 -
Leetcode287. 寻找重复数
题目给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2)...原创 2020-01-11 15:27:57 · 147 阅读 · 0 评论 -
Leetcode645. 错误的集合
题目集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意:给定数组的长...原创 2020-01-11 15:08:45 · 177 阅读 · 0 评论 -
Leetcode409. 最长回文串
题目给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。来源:力扣(LeetCode)链接:https://leetcode...原创 2020-01-11 14:07:03 · 222 阅读 · 0 评论 -
Leetcode266. 回文排列
题目给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。示例 1:输入: “code”输出: false示例 2:输入: “aab”输出: true示例 3:输入: “carerac”输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-permutation...原创 2020-01-11 12:48:33 · 463 阅读 · 0 评论 -
Leetcode487. 最大连续1的个数 II
题目给定一个二进制数组,你可以最多将 1 个 0 翻转为 1,找出其中最大连续 1 的个数。示例 1:输入:[1,0,1,1,0]输出:4解释:翻转第一个 0 可以得到最长的连续 1。当翻转以后,最大连续 1 的个数为 4。注:输入数组只包含 0 和 1.输入数组的长度为正整数,且不超过 10,000进阶:如果输入的数字是作为 无限流 逐个输入如何处理?换句话说,内存不能存储下...原创 2020-01-11 11:36:03 · 819 阅读 · 0 评论 -
Leetcode485. 最大连续1的个数
题目给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ma...原创 2020-01-11 11:31:54 · 116 阅读 · 0 评论 -
Leetcode1004. 最大连续1的个数 III
题目给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释: [1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,1,0,0...原创 2020-01-11 11:09:34 · 234 阅读 · 0 评论 -
Leecode18. 四数之和
[TODO]题目给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足...原创 2020-01-11 08:37:21 · 168 阅读 · 0 评论
分享