![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode刷题
文章平均质量分 58
tbaglee
code and read,
enjoy your life
展开
-
LeetCode-72. 编辑距离
LeetCode-72. 编辑距离题目解法题目给你两个单词word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)原创 2021-09-03 16:09:23 · 217 阅读 · 0 评论 -
LeetCode-70. 爬楼梯
LeetCode-70. 爬楼梯题目解法笔记题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 . 1 阶 + 1 阶2 . 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 . 1 阶 + 1 阶 + 1 阶2 . 1 阶 + 2 阶3 . 2 阶 + 1 阶解法原创 2021-09-02 17:04:06 · 223 阅读 · 0 评论 -
LeetCode-64. 最小路径和
LeetCode-64. 最小路径和题目解法题目给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,5,6]]输出:12提示:m == grid.lengthn == grid[i].原创 2021-09-01 15:56:51 · 321 阅读 · 0 评论 -
LeetCode-62. 不同路径
LeetCode-62. 不同路径题目解法题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释: 从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 ->原创 2021-08-29 15:31:20 · 368 阅读 · 0 评论 -
LeetCode-56. 合并区间
LeetCode-56. 合并区间题目解法题目以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [startistart_istarti, endiend_iendi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠原创 2021-08-28 16:36:09 · 81 阅读 · 0 评论 -
LeetCode-55. 跳跃游戏
LeetCode-55. 跳跃游戏题目解法)题目给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下原创 2021-08-27 09:58:10 · 88 阅读 · 0 评论 -
LeetCode-53. 最大子序和
LeetCode-53. 最大子序和题目解法)题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums原创 2021-08-26 15:39:37 · 126 阅读 · 0 评论 -
LeetCode-49. 字母异位词分组
LeetCode-49. 字母异位词分组原创 2021-08-25 19:39:38 · 196 阅读 · 0 评论 -
LeetCode-48. 旋转图像
LeetCode-48. 旋转图像题目解法)题目给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],原创 2021-08-24 10:32:13 · 107 阅读 · 0 评论 -
LeetCode-46. 全排列
LeetCode-46. 全排列题目解法)题目给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]提示:1 <= nums.length <原创 2021-08-24 10:05:39 · 148 阅读 · 1 评论 -
LeetCode-42. 接雨水
LeetCode-42. 接雨水题目解法)题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == heig原创 2021-08-21 12:32:14 · 170 阅读 · 0 评论 -
LeetCode-39. 组合总和
LeetCode-39. 组合总和原创 2021-08-21 10:07:09 · 119 阅读 · 0 评论 -
LeetCode-34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode-34. 在排序数组中查找元素的第一个和最后一个位置题目解法题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10]原创 2021-08-19 13:40:52 · 233 阅读 · 0 评论 -
LeetCode-33. 搜索旋转排序数组
LeetCode-33. 搜索旋转排序数组原创 2021-08-19 10:02:32 · 119 阅读 · 0 评论 -
LeetCode-32. 最长有效括号
LeetCode-32. 最长有效括号题目解法笔记题目给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0提示:0 <= s.length <= 3 * 10410^4104s[i] 为 ‘(’ 或 ‘)’解法原创 2021-08-17 11:18:09 · 120 阅读 · 0 评论 -
LeetCode-31. 下一个排列
LeetCode-31. 下一个排列题目解法题目实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]原创 2021-08-16 11:31:36 · 114 阅读 · 0 评论 -
LeetCode-23. 合并K个升序链表
LeetCode-23. 合并K个升序链表题目解法题目给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6原创 2021-08-15 10:57:01 · 120 阅读 · 0 评论 -
LeetCode-22. 括号生成
LeetCode-22. 括号生成题目解法笔记题目数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8解法解法1 :dp思路:当我们清楚所有 i<n 时括号的可能生成排列后,对与 i=n 的情况,我们考虑整个括号排列原创 2021-08-14 10:32:46 · 162 阅读 · 0 评论 -
LeetCode-21. 合并两个有序链表
LeetCode-21. 合并两个有序链表题目解法笔记题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]100 <= Node.val <=原创 2021-08-13 10:53:49 · 113 阅读 · 0 评论 -
LeetCode-20. 有效的括号
LeetCode-20. 有效的括号题目解法题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “( ) [ ] { }”输出:true示例 3:输入:s = “( ]”输出:false示例 4:输入:s = "( [ ) ] "输出:false示例 5原创 2021-08-12 14:04:02 · 95 阅读 · 0 评论 -
LeetCode-19. 删除链表的倒数第 N 个结点
LeetCode-19. 删除链表的倒数第 N 个结点题目解法笔记题目给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <原创 2021-08-11 10:32:27 · 112 阅读 · 0 评论 -
LeetCode-17. 电话号码的字母组合
LeetCode-17. 电话号码的字母组合题目解法笔记题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:s = “ab” p = “."输出:true原创 2021-08-07 22:15:18 · 149 阅读 · 0 评论 -
LeetCode-11. 盛最多水的容器
LeetCode-11. 盛最多水的容器题目解法题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色原创 2021-08-07 22:12:55 · 83 阅读 · 0 评论 -
LeetCode-15. 三数之和
leetcode-15. 三数之和题目解答题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= n原创 2021-08-07 22:11:17 · 122 阅读 · 0 评论 -
LeetCode-10. 正则表达式匹配
LeetCode-10. 正则表达式匹配题目解法题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = “aa” p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa” p = “a*”输出:true解释:因为 ‘*’ 代表可以匹配原创 2021-08-07 22:06:54 · 78 阅读 · 0 评论 -
LeetCode-5. 最长回文子串
LeetCode-5. 最长回文子串题目解法笔记题目给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成解法class S原创 2021-08-07 21:51:27 · 130 阅读 · 0 评论 -
LeetCode-4. 寻找两个正序数组的中位数
LeetCode-4. 寻找两个正序数组的中位数题目解法题目给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2原创 2021-08-07 21:48:10 · 123 阅读 · 0 评论 -
LeetCode-3. 无重复字符的最长子串
LeetCode-3. 无重复字符的最长子串题目解法笔记题目给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度原创 2021-08-07 21:43:52 · 143 阅读 · 0 评论 -
LeetCode-2. 两数相加
LeetCode-2. 两数相加题目解法笔记题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:原创 2021-08-07 21:30:17 · 92 阅读 · 0 评论 -
LeetCode-1. 两数之和
1原创 2021-08-07 21:21:14 · 282 阅读 · 0 评论