![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 60
LeetCode相关习题题解过程
亓官劼
大家好,我是亓官劼(qí guān jié),在各个平台分享前端开发、python后端开发、小程序开发、数据结构与算法、docker、Linux常用运维、NLP等相关技术博文。如果喜好博主的文章的话可以关注博主的微信公众号【亓官劼】(读音:qí guān jié),也可以加入QQ交流群545611263进行交流。
展开
-
Python描述 LeetCode 剑指 Offer II 091. 粉刷房子
假如有一排房子,共 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 的正整数矩阵 来表示的。例如, 表示第 0 号房子粉刷成红色的成本花费; 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。示例 1:示例 2:提示:注意:本题与主站 256 题相同:https://leet原创 2022-06-25 10:44:30 · 576 阅读 · 0 评论 -
Python描述 LeetCode 83. 删除排序链表中的重复元素
给定一个已排序的链表的头 , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:示例 2:提示:原创 2022-06-24 14:11:48 · 487 阅读 · 0 评论 -
Python描述 LeetCode 515. 在每个树行中找最大值
给定一棵二叉树的根节点 ,请找出该二叉树中每一层的最大值。示例1:示例2:提示:层次遍历原创 2022-06-24 12:39:36 · 283 阅读 · 0 评论 -
Python描述 LeetCode 82. 删除排序链表中的重复元素 II
给定一个已排序的链表的头 , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。示例 1:示例 2:提示:双指针,找没有重复的结点原创 2022-06-23 14:11:55 · 409 阅读 · 0 评论 -
Python描述 LeetCode 81. 搜索旋转排序数组 II
已知存在一个按非降序排列的整数数组 ,数组中的值不必互不相同。在传递给函数之前, 在预先未知的某个下标 ()上进行了 旋转 ,使数组变为 (下标 从 0 开始 计数)。例如, 在下标 处经旋转后可能变为 。给你 旋转后 的数组 和一个整数 ,请你编写一个函数来判断给定的目标值是否存在于数组中。如果 中存在这个目标值 ,则返回 ,否则返回 。你必须尽可能减少整个操作步骤。示例 1:示例 2:提示:进阶:分成两个有序序列,然后二分...原创 2022-06-23 13:58:03 · 195 阅读 · 0 评论 -
Python描述 LeetCode 80. 删除有序数组中的重复项 II
给你一个有序数组 ,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以**「引用」**方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:示例 1:示例 2:提示:双指针,如果有重复的,保留前两个,然后一直向后走,直到不同的数字...原创 2022-06-23 13:53:11 · 235 阅读 · 0 评论 -
Python描述 LeetCode 79. 单词搜索
给定一个 二维字符网格 和一个字符串单词 。如果 存在于网格中,返回 ;否则,返回 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:示例 2:示例 3:提示:**进阶:**你可以使用搜索剪枝的技术来优化解决方案,使其在 更大的情况下可以更快解决问题?爆搜,这里每个单词只能用一次,加一个访问数组控制...原创 2022-06-23 10:43:01 · 526 阅读 · 0 评论 -
Python描述 LeetCode 78. 子集
给你一个整数数组 ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:示例 2:提示:爆搜原创 2022-06-22 15:35:31 · 575 阅读 · 0 评论 -
Python描述 LeetCode 77. 组合
给定两个整数 和 ,返回范围 中所有可能的 个数的组合。你可以按 任何顺序 返回答案。示例 1:示例 2:提示:爆搜原创 2022-06-22 15:25:46 · 583 阅读 · 0 评论 -
Python描述 LeetCode 513. 找树左下角的值
给定一个二叉树的 根节点 ,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。示例 1:示例 2:提示:层次遍历一下,找最下层第一个结点原创 2022-06-22 14:50:51 · 394 阅读 · 21 评论 -
Python描述 LeetCode 334. 递增的三元子序列
给你一个整数数组 ,判断这个数组中是否存在长度为 的递增子序列。如果存在这样的三元组下标 且满足 ,使得 ,返回 ;否则,返回 。示例 1:示例 2:示例 3:提示:**进阶:**你能实现时间复杂度为 ,空间复杂度为 的解决方案吗?参考了宫水三叶的解法。维护一个升序且每个数字尽可能小的序列,这里由于只需要长度为3的序列,我们简化判断,只维护2个就好。宫水三叶的这种思路在求最长升序序列的时候很赞。...原创 2022-06-21 13:16:55 · 364 阅读 · 18 评论 -
Python描述 LeetCode 76. 最小覆盖子串
给你一个字符串 、一个字符串 。返回 中涵盖 所有字符的最小子串。如果 中不存在涵盖 所有字符的子串,则返回空字符串 。注意:示例 1:示例 2:示例 3:提示:**进阶:**你能设计一个在 时间内解决此问题的算法吗?双指针,O(n)...原创 2022-06-21 12:17:48 · 502 阅读 · 0 评论 -
Python描述 LeetCode 1108. IP 地址无效化
给你一个有效的 IPv4 地址 ,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 代替了每个 。示例 1:示例 2:提示:原创 2022-06-21 10:01:54 · 558 阅读 · 0 评论 -
Python描述 LeetCode 508. 出现次数最多的子树元素和
给你一个二叉树的根结点 ,请返回出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的子树元素和(不限顺序)。一个结点的 「子树元素和」 定义为以该结点为根的二叉树上所有结点的元素之和(包括结点本身)。示例 1:示例 2:提示:递归计算sum,然后统计出现次数...原创 2022-06-19 10:09:29 · 688 阅读 · 0 评论 -
Python描述 LeetCode 74. 搜索二维矩阵
编写一个高效的算法来判断 矩阵中,是否存在一个目标值。该矩阵具有如下特性:示例 1:示例 2:提示:先二分行,再二分列原创 2022-06-18 13:52:25 · 369 阅读 · 21 评论 -
Python描述 LeetCode 73. 矩阵置零
给定一个 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法**。**示例 1:示例 2:提示:进阶:只用O(1)的空间,那就找第一个有0的行作为标记行,记录需要置零的列,然后置零即可...原创 2022-06-18 13:39:12 · 492 阅读 · 0 评论 -
Python描述 LeetCode 72. 编辑距离
给你两个单词 和 , 请返回将 转换成 所使用的最少操作数 。你可以对一个单词进行如下三种操作:示例 1:示例 2:提示:动态规划。原创 2022-06-18 13:22:23 · 470 阅读 · 29 评论 -
Python描述 LeetCode 71. 简化路径
给你一个字符串 ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点()表示当前目录本身;此外,两个点 () 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,)都被视为单个斜杠 。 对于此问题,任何其他格式的点(例如,)均被视为文件/目录名称。请注意,返回的 规范路径 必须遵循下述格式:返回简化后得到的 规范路径 。示例 1:示例 2:示例 3:示例 4:提原创 2022-06-18 13:04:12 · 832 阅读 · 0 评论 -
Python描述 LeetCode 70. 爬楼梯
假设你正在爬楼梯。需要 阶你才能到达楼顶。每次你可以爬 或 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:示例 2:提示:原创 2022-06-17 10:36:14 · 515 阅读 · 0 评论 -
Python描述 LeetCode 69. x 的平方根
给你一个非负整数 ,计算并返回 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。**注意:**不允许使用任何内置指数函数和算符,例如 或者 。示例 1:示例 2:提示:...原创 2022-06-17 10:25:12 · 337 阅读 · 0 评论 -
Python描述 LeetCode 1089. 复写零
给你一个长度固定的整数数组 ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。示例 1:示例 2:提示:...原创 2022-06-17 10:00:05 · 1130 阅读 · 0 评论 -
Python描述 LeetCode 67. 二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 和 。示例 1:示例 2:提示:原创 2022-06-16 21:51:59 · 346 阅读 · 0 评论 -
Python描述 LeetCode 66. 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:示例 2:示例 3:提示:...原创 2022-06-16 21:46:14 · 308 阅读 · 0 评论 -
Python描述 LeetCode 64. 最小路径和
给定一个包含非负整数的 网格 ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。**说明:**每次只能向下或者向右移动一步。示例 1:示例 2:提示:经典DP,走方格原创 2022-06-16 21:25:22 · 382 阅读 · 0 评论 -
Python描述 LeetCode 63. 不同路径 II
一个机器人位于一个 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 和 来表示。示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SvAUZiCY-1655344038978)(https://assets.leetcode.com/uploads/2020/原创 2022-06-16 09:47:28 · 425 阅读 · 0 评论 -
Python描述 LeetCode 62. 不同路径
一个机器人位于一个 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-byRplcgq-1655343557844)(https://assets.leetcode.com/uploads/2018/10/22/robot_maze.png)]示例 2:示例 3:示例 4:提示原创 2022-06-16 09:39:27 · 286 阅读 · 0 评论 -
Python描述 LeetCode 61. 旋转链表
给你一个链表的头节点 ,旋转链表,将链表每个节点向右移动 个位置。示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJIaR6Vv-1655343200285)(https://assets.leetcode.com/uploads/2020/11/13/rotate1.jpg)]示例 2:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5oPBES9q-1655343200286)(https://assets.leetcode.原创 2022-06-16 09:33:40 · 320 阅读 · 0 评论 -
Python描述 LeetCode 59. 螺旋矩阵 II
给你一个正整数 ,生成一个包含 到 所有元素,且元素按顺时针顺序螺旋排列的 正方形矩阵 。示例 1:示例 2:提示:和螺旋矩阵一样做就可以,先反过来即可,一样的思路。也可以使用一个cir来控制第几圈来填入...原创 2022-06-14 23:29:36 · 385 阅读 · 28 评论 -
Python描述 LeetCode 58. 最后一个单词的长度
给你一个字符串 ,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:示例 2:示例 3:提示:...原创 2022-06-14 16:29:38 · 299 阅读 · 18 评论 -
Python描述 LeetCode 57. 插入区间
给你一个 无重叠的 *,*按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:示例 2:示例 3:示例 4:示例 5:提示:直接插入,然后用上一题的合并...原创 2022-06-14 16:27:35 · 305 阅读 · 18 评论 -
Python描述 LeetCode 56. 合并区间
以数组 表示若干个区间的集合,其中单个区间为 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:示例 2:提示:排序后对于每一个区间,一直往后查找当前区间可以合并的最大值即可。...原创 2022-06-14 16:24:56 · 342 阅读 · 0 评论 -
Python描述 LeetCode 55. 跳跃游戏
给定一个非负整数数组 ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:示例 2:提示:向前走,同时更新可以达到的最远距离,判断最后是否可以走到n-1即可...原创 2022-06-14 16:15:55 · 341 阅读 · 0 评论 -
Python描述 LeetCode 54. 螺旋矩阵
给你一个 行 列的矩阵 ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:示例 2:提示:模拟题,每次走到头,然后换方向,这里注意下不一定下一个方向就一定能走通,可以连续换3个方向,如果3个方向都不行则说明结束了...原创 2022-06-14 15:51:26 · 349 阅读 · 0 评论 -
Python描述 LeetCode 53. 最大子数组和
给你一个整数数组 ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:示例 2:示例 3:提示:贪心扫描原创 2022-06-14 15:37:56 · 344 阅读 · 0 评论 -
Python描述 LeetCode 52. N皇后 II
n 皇后问题 研究的是如何将 个皇后放置在 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 ,返回 n 皇后问题 不同的解决方案的数量。示例 1:示例 2:提示:51题结果加个len即可...原创 2022-06-14 15:31:10 · 287 阅读 · 0 评论 -
Python描述 LeetCode 51. N 皇后
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 个皇后放置在 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 和 分别代表了皇后和空位。示例 1:示例 2:提示:回溯经典题目了,回溯+判断即可...原创 2022-06-14 15:25:39 · 317 阅读 · 0 评论 -
Python描述 LeetCode 498. 对角线遍历
给你一个大小为 的矩阵 ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。示例 1:示例 2:提示:模拟。这题m*n的图模拟一下就好,这里m和n不一样最好,比较方便推。原创 2022-06-14 14:26:24 · 277 阅读 · 16 评论 -
Python描述 LeetCode 50. Pow(x, n)
实现 pow(x, n) ,即计算 的 次幂函数(即, )。示例 1:示例 2:示例 3:提示:快速幂原创 2022-06-13 13:38:42 · 1555 阅读 · 21 评论 -
Python描述 LeetCode 49. 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。示例 1:示例 2:示例 3:提示:哈希表记录每个字符串排序后字符相同的序列即可...原创 2022-06-13 13:21:12 · 444 阅读 · 0 评论 -
Python描述 LeetCode 48. 旋转图像
给定一个 n × n 的二维矩阵 表示一个图像。请你将图像顺时针旋转 90 度。你必须在** 原地** 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:示例 2:提示:翻转代替旋转...原创 2022-06-13 13:12:36 · 392 阅读 · 0 评论