![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
点PY
If you cannot risk, you cannot grow. If you cannot grow, you cannot become you best. If you cannot become you best, you cannot be happy. If you cannot be happy, what else matters?
展开
-
Leetcode题目71. 简化路径
题目简介 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径 请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须...原创 2020-04-24 16:54:08 · 256 阅读 · 0 评论 -
Leetcode题目70. 爬楼梯
题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 . 1 阶 + 1 阶 2 . 2 阶 python代码 本问题其实常规解法可以分成多个子问题,爬第n阶楼梯的方法数量,等于 2 部分之和 爬上 n-1n−1 阶...原创 2020-04-24 09:43:17 · 250 阅读 · 0 评论 -
Leetcode题目59. 螺旋矩阵 II
题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 python代码 动态规划+一维数组 class Solution: def minPathS...原创 2020-04-22 10:08:41 · 163 阅读 · 0 评论 -
Leetcode题目63. 不同路径 II
题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 示例: 输入: [ [0,0,0], [0,1,0], [0,0,0]] 输出: 2 解释: 3x3 网格的正中间有一个障碍...原创 2020-04-21 15:25:58 · 193 阅读 · 0 评论 -
Leetcode题目62. 不同路径
题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 示例: 输入: m = 3, n = 2 输出: 3 解释: 从左上角开始,总共有 3 条路径可以到达右下角。 向右 -> 向右 -> 向下 向右 -&...原创 2020-04-21 10:08:07 · 190 阅读 · 0 评论 -
Leetcode题目60. 第k个排列
题目描述 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: “123” “132” “213” “231” “312” “321” 给定 n 和 k,返回第 k 个排列。 说明: 给定 n 的范围是 [1, 9]。 给定 k 的范围是[1, n!]。 示例: 输入: n = 3, k = 3 输出: ...原创 2020-04-20 08:59:32 · 230 阅读 · 0 评论 -
Leetcode题目59. 螺旋矩阵 II
题目描述 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] python代码 class Solution: def generateMatrix(self, n: int) -> List[List[int]]: ...原创 2020-04-19 09:20:26 · 188 阅读 · 1 评论 -
Leetcode题目58. 最后一个单词的长度
题目描述 给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。 输入: “Hello World” 输出: 5 python代码 首先去掉字符串首尾空格,在按照空格切分字符串,取最后一个元素。 ...原创 2020-04-18 20:25:15 · 175 阅读 · 0 评论 -
Leetcode题目56. 合并区间
题目描述 给出一个区间的集合,请合并所有重叠的区间。 示例1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. python代码 class Solution: def merge(self, intervals: List[List[i...原创 2020-04-16 22:03:52 · 159 阅读 · 0 评论 -
Leetcode题目55. 跳跃游戏
题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 python代码 class Solution: def canJump(...原创 2020-04-16 18:44:25 · 145 阅读 · 0 评论 -
Leetcode题目54. 螺旋矩阵
题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] python代码 class Solution: def spiralOrder(self, matrix: List[Li...原创 2020-04-10 09:56:33 · 120 阅读 · 0 评论 -
Leetcode题目53. 最大子序和
题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 python代码 class Solution: def maxSubArray(self, nums: List[int]) -&g...原创 2020-04-09 20:35:25 · 99 阅读 · 0 评论 -
Leetcode题目50. Pow(x, n)
题目描述 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例: 输入: 2.00000, 10 输出: 1024.00000 python代码 根据题意,要对x乘n次,如果用直接遍历n次,那么复杂度为O(n),考虑二分查找的思想,每次x *= x,那就是成倍地增加,复杂度为O(logn) 因此,只需要一边记录x累乘的结果,一边记录累乘的次数,当累乘次数的两倍大于n时,n减去此次的...原创 2020-04-09 18:31:03 · 191 阅读 · 0 评论 -
leetcode题目49. 字母异位词分组
题目描述 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 输出: [ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”] ] python代码 class Solution: def groupAnagram...原创 2020-04-06 16:18:10 · 167 阅读 · 0 评论 -
leetcode题目48. 旋转图像
题目描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 。 python代码 ...原创 2020-04-06 11:41:36 · 182 阅读 · 0 评论 -
leetcode题目47. 全排列 II
题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] python代码 回溯+去重 class Solution: def permuteUnique(self, nums: List[int]) -> List[List[int]]: nums.sor...原创 2020-03-23 12:09:53 · 159 阅读 · 0 评论 -
leetcode题目46. 全排列
题目描述 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] python代码 回溯法 class Solution: def permute(self, nums: List[int]) -> List[List[int...原创 2020-03-23 11:32:57 · 280 阅读 · 0 评论 -
leetcode题目40. 组合总和 II
题目描述 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: ...原创 2020-03-22 19:43:02 · 144 阅读 · 0 评论 -
leetcode题目39. 组合总和
题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例: 输入: candidates = [2,3,6,7], target = 7, 所求解集为: [...原创 2020-03-22 17:49:43 · 168 阅读 · 0 评论 -
leetcode题目35. 搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例: 输入: [1,3,5,6], 5 输出: 2 python代码 版本1: class Solution: def searchInsert(self, nums: List[int], target: int) -&g...原创 2020-03-21 23:39:40 · 115 阅读 · 0 评论 -
leetcode题目34. 在排序数组中查找元素的第一个和最后一个位置
题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] python代码 解法1: class Solution: ...转载 2020-03-20 13:39:40 · 158 阅读 · 0 评论 -
leetcode题目33. 搜索旋转排序数组
题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O(log n) 级别。 示例: 输入: nums = [4,5,6,7,0,1,2], ...原创 2020-03-20 12:47:56 · 162 阅读 · 0 评论 -
leetcode题目29. 两数相除
‘’&’’:按位与操作,只有 1 &1 为1,其他情况为0。可用于进位运算。 ‘’|’’:按位或操作,只有 0|0为0,其他情况为1。 ‘’~’’:逐位取反。 ‘’^’’:异或,相同为0,相异为1。可用于加操作(不包括进位项)。 ‘’<<’’:左移操作,2的幂相关 ‘’>>’’:右移操作,2的幂相关 ...原创 2020-03-19 14:16:48 · 188 阅读 · 1 评论 -
leetcode题目28. 实现 strStr()
题目描述 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例: 输入: haystack = “hello”, needle = “ll” 输出: 2 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当...原创 2020-03-19 08:46:27 · 142 阅读 · 0 评论 -
leetcode题目27. 移除元素
题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素...原创 2020-03-18 09:00:05 · 206 阅读 · 0 评论 -
leetcode题目26. 删除排序数组中的重复项
题目描述 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 pytho...原创 2020-03-18 08:06:27 · 142 阅读 · 0 评论 -
leetcode题目22. 括号生成
题目描述 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ “((()))”, “(()())”, “(())()”, “()(())”, “()()()” ] python代码 ''' 动态规划: dp[i]表示i组括号的所有有效组合 dp[i] = "(dp[p]的所有有效组合)+【dp[q]的组合】",其...原创 2020-03-17 23:05:12 · 113 阅读 · 0 评论 -
leetcode题目20. 有效的括号
题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 python代码 class Solution: def isValid(self, s: str) -> bool: while '{}' ...原创 2020-03-17 18:06:59 · 145 阅读 · 0 评论 -
leetcode题目18. 四数之和
题目描述 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。 示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。 满足要求的四元组集...原创 2020-03-17 08:25:04 · 192 阅读 · 0 评论 -
leetcode题目17. 电话号码的字母组合
题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 python代码 class...原创 2020-03-17 07:55:51 · 156 阅读 · 0 评论 -
leetcode题目16. 最接近的三数之和
题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). python代码 class S...原创 2020-03-16 11:06:30 · 92 阅读 · 0 评论 -
leetcode题目15. 三数之和
题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] python代码 排...原创 2020-03-16 08:58:53 · 203 阅读 · 0 评论 -
leetcode题目8. 字符串转换整数 (atoi)
题目描述 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字...原创 2020-03-15 11:12:48 · 209 阅读 · 0 评论 -
leetcode题目7. 整数反转
题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例1: 输入: 123 输出: 321 示例2: 输入: -123 输出: -321 示例3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 python代码...原创 2020-03-15 10:12:29 · 144 阅读 · 0 评论 -
leetcode题目3:无重复字符的最长子串
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 python代码 class Solution: def lengthOfLo...原创 2020-03-14 09:29:32 · 256 阅读 · 0 评论 -
leetcode题目300:最长上升子序列
题目描述: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。 进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? pyt...原创 2020-03-14 09:09:32 · 207 阅读 · 0 评论 -
leetcode题目9:回文数
题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例: 输入: 121 输出: true 解法 解法一:数字转字符串 class Solution: def isPalindrome(self, x): """ :type x: int :rtype: bool """...原创 2020-02-27 20:57:36 · 160 阅读 · 0 评论 -
Leetcode题目1:两数之和
赛题描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解法...原创 2020-02-27 20:50:58 · 156 阅读 · 0 评论