LeetCode
文章平均质量分 61
umbrellasoft
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 22. 括号生成 Generate Parentheses
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"] 方法一:暴力法思路我们可以生成所有 22n2^{2n}22n 个 '(' 和 ')' 字符构成的序列。然后,...原创 2018-08-31 10:57:49 · 19897 阅读 · 0 评论 -
LeetCode 23. 合并K个排序链表 Merge k Sorted Lists
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6 /** * Definition for singly-linked list. * publi...原创 2018-08-31 11:13:16 · 19768 阅读 · 0 评论 -
LeetCode 24. 两两交换链表中的节点 Swap Nodes in Pairs
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定1->2->3->4, 你应该返回 2->1->4->3说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。/** * Definition for singly-linked list. * public ...原创 2018-08-31 11:54:05 · 19594 阅读 · 0 评论 -
LeetCode 25. k个一组翻转链表 Reverse Nodes in k-Group
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->...原创 2018-08-31 11:54:49 · 19997 阅读 · 0 评论 -
LeetCode 26. 删除排序数组中的重复项 Remove Duplicates from Sorted Array
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为1,2 你不需要考虑数组中超出新长度后面的元素。示例 2:...原创 2018-08-31 11:59:36 · 19748 阅读 · 0 评论 -
LeetCode 27. 移除元素 Remove Element
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的...原创 2018-08-31 12:02:39 · 19638 阅读 · 0 评论 -
LeetCode 28. 实现strStr() Implement strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", ne...原创 2018-08-31 12:04:58 · 19571 阅读 · 0 评论 -
LeetCode 29. 两数相除 Divide Two Integers
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2 pub...原创 2018-08-31 12:07:23 · 19679 阅读 · 0 评论 -
LeetCode 30. 与所有单词相关联的字串 Substring with Concatenation of All Words
给定一个字符串 s 和一些长度相同的单词 words。在 s 中找出可以恰好串联 words 中所有单词的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入: s = "barfoothefoobarman", words = ["foo","bar"]输出:[0,9]...原创 2018-08-31 12:08:33 · 19739 阅读 · 0 评论 -
LeetCode 1. 两数之和 Two Sum
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] 解决方案方法一:暴力法暴力法很简单。遍历每个元素 xxx,并查找是否...原创 2018-08-29 00:37:52 · 22633 阅读 · 1 评论 -
LeetCode 2. 两数相加 Add Two Numbers
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807 解决方案方法:初等数...原创 2018-08-29 00:43:54 · 20290 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串 Longest Substring Without Repeating Characters
给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3解释: 无重复字符的最长子串是 "abc",其长度为 3。 示例 2: 输入: "bbbbb"输出: 1解释: 无重复字符的最长子串是 "b",其长度为 1。 示例 3: 输入: "pwwkew"输出: 3解释: 无重复字符的最长子串是 "w.原创 2018-08-29 00:50:29 · 20221 阅读 · 0 评论 -
LeetCode 4. 两个排序数组的中位数 Median of Two Sorted Arrays
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]中位数...原创 2018-08-29 09:12:05 · 20378 阅读 · 0 评论 -
LeetCode 5. 最长回文子串 Longest Palindromic Substring
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb" 摘要这篇文章是为中级读者而写的。它介绍了回文,动态规划以及字符串处理。请确保你理解什么是回文。回文是一个正读和反读都相同的字符串...原创 2018-08-29 09:15:00 · 20620 阅读 · 0 评论 -
LeetCode 6. Z字形变换 ZigZag Conversion
将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = "PAYPA...原创 2018-08-29 09:39:28 · 20161 阅读 · 0 评论 -
LeetCode 7. 反转整数 Reverse Integer
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。解决方案方...原创 2018-08-29 09:43:24 · 20336 阅读 · 0 评论 -
LeetCode 8. 字符串转整数 (atoi) String to Integer (atoi)
实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字...原创 2018-08-29 09:49:17 · 20132 阅读 · 0 评论 -
LeetCode 9. 回文数 Palindrome Number
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不...原创 2018-08-29 09:59:32 · 20313 阅读 · 0 评论 -
LeetCode 10. 正则表达式匹配 Regular Expression Matching
给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "a...原创 2018-08-29 10:02:53 · 20199 阅读 · 0 评论 -
LeetCode 11. 盛最多水的容器 Container With Most Water
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...原创 2018-08-30 09:43:15 · 19914 阅读 · 0 评论 -
LeetCode 31. 下一个排列 Next Permutation
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1概要我们需要找到给定数字列表的下一个字典排列,而...原创 2018-09-01 22:23:38 · 19747 阅读 · 0 评论 -
LeetCode 32. 最长有效括号 Longest Valid Parentheses
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为"()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()" public class Solution { public int longestValidPare...原创 2018-09-01 22:26:07 · 19633 阅读 · 0 评论 -
LeetCode 33. 搜索旋转排序数组 Search in Rotated Sorted Array
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,...原创 2018-09-01 22:39:55 · 19545 阅读 · 0 评论 -
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 Find First and Last Position of Element in Sorted Array
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10],target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8...原创 2018-09-01 22:41:27 · 19945 阅读 · 0 评论 -
LeetCode 35. 搜索插入位置 Search Insert Position
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3...原创 2018-09-01 22:42:38 · 19624 阅读 · 0 评论 -
LeetCode 36. 有效的数独 Valid Sudoku
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ["5","3",".",".",...原创 2018-09-01 22:43:55 · 19544 阅读 · 0 评论 -
LeetCode 37. 解数独 Sudoku Solver
编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 '.' 表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字 1-9 和字符 '.' 。 你可以假设给定的数独只有唯一解...原创 2018-09-01 22:44:57 · 19603 阅读 · 0 评论 -
LeetCode 38. 报数 Count and Say
报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("原创 2018-09-01 22:46:01 · 19552 阅读 · 0 评论 -
LeetCode 39. 组合总和 Combination Sum
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7],target =7,所求解集为:...原创 2018-09-01 22:48:36 · 19644 阅读 · 1 评论 -
LeetCode 40. 组合总和 II Combination Sum II
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1:输入: candidates = [10,1,2,7,6,1,5],target = 8,所求解集...原创 2018-09-01 22:50:33 · 19552 阅读 · 1 评论 -
LeetCode 42. 接雨水 Trapping Rain Water
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6public class ...原创 2018-09-02 10:06:30 · 19661 阅读 · 0 评论 -
LeetCode 41. 缺失的第一个正数 First Missing Positive
给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。public class Solution { p...原创 2018-09-02 10:05:38 · 19471 阅读 · 0 评论 -
LeetCode 43. 字符串相乘 Multiply Strings
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。 nu原创 2018-09-02 10:07:20 · 19577 阅读 · 0 评论 -
LeetCode 44. 通配符匹配 Wildcard Matching
给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = "aa"p ...原创 2018-09-02 10:08:34 · 19611 阅读 · 0 评论 -
LeetCode 45. 跳跃游戏 II Jump Game II
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是2.从下标为 0 跳到下标为 1 的位置,跳 1步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个...原创 2018-09-02 10:10:01 · 19642 阅读 · 0 评论 -
LeetCode 46. 全排列 Permutations
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]您是否在真实的面试环节中遇到过这道题目呢? public class Solution { public List<List<I...原创 2018-09-02 10:11:11 · 19550 阅读 · 0 评论 -
LeetCode 47. 全排列 II Permutations II
给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]public class Solution { public List<List<Integer>> permuteUnique(int[] nums) { List<...原创 2018-09-02 10:12:16 · 19711 阅读 · 0 评论 -
LeetCode 48. 旋转图像 Rotate Image
给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,...原创 2018-09-02 10:13:21 · 19647 阅读 · 0 评论 -
LeetCode 49. 字母异位词分组 Group Anagrams
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入:["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan&quo原创 2018-09-02 10:14:42 · 19817 阅读 · 0 评论 -
LeetCode 50. 求幂(x, n) Pow(x, n)
实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x &...原创 2018-09-02 10:16:58 · 19513 阅读 · 0 评论
分享