![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode-pythpn
亦万
世间行乐亦如此,古来万事东流水。
展开
-
leetcode买卖股票的最佳时机 II
一' 题目要求如下:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这...原创 2018-05-09 22:19:22 · 565 阅读 · 0 评论 -
leetcode-724. 寻找数组的中心索引
一、问题描述给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释: 索引3 (nums[...原创 2018-05-27 20:46:06 · 887 阅读 · 0 评论 -
leetcode-119. 杨辉三角 II 运行时间超越100%
一、题目要求给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。二、代码及思路(这里思路可看我上一篇博文求整个杨辉三角形)https://blog.csdn.net/GrinAndBearIt/article/details/80338648class Solution(object): def getRow(self, row...原创 2018-05-16 16:34:34 · 217 阅读 · 0 评论 -
leetcode-118. 杨辉三角 运行时间超越提交的100%
一、题目要求给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。二、代码及思路(注释是运行代码后)class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: List[List...原创 2018-05-16 16:24:36 · 222 阅读 · 0 评论 -
leetcode-717. 1比特与2比特字符
一、问题描述有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。示例 1:输入: bits = [1, 0, 0]输出: True解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例 2:输入: bits =...原创 2018-05-27 08:47:23 · 622 阅读 · 0 评论 -
leetcode-695. 岛屿的最大面积(使用递归的方法)
一、问题描述给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1...原创 2018-05-26 19:16:10 · 823 阅读 · 0 评论 -
leetcode-88. 合并两个有序数组
一、题目要求给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2...原创 2018-05-16 09:52:16 · 602 阅读 · 0 评论 -
leetcode-66. 加一
一、题目要求给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。二、代码和...原创 2018-05-16 09:21:14 · 223 阅读 · 0 评论 -
leetcode-661. 图片平滑器
一、问题描述包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1], [1,0,1], [1,1,1]]输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]解释:对于点 (...原创 2018-05-22 15:34:58 · 651 阅读 · 0 评论 -
leetcode-167. 两数之和 II - 输入有序数组
一、题目要求给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], targe...原创 2018-05-16 20:46:23 · 385 阅读 · 0 评论 -
leetcode-747. 至少是其他数字两倍的最大数
一、问题描述在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1. 示例 2:输入: nums = [1, 2, 3, ...原创 2018-05-28 21:34:26 · 488 阅读 · 0 评论 -
leetcode-38. 报数
一、问题描述报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("原创 2018-06-01 20:38:35 · 440 阅读 · 0 评论 -
leetcode-14. 最长公共前缀
一、问题描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-原创 2018-05-31 19:32:59 · 203 阅读 · 0 评论 -
leetcode-13. 罗马数字转整数
一、问题描述罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2018-05-30 21:42:42 · 239 阅读 · 0 评论 -
leetcode-830. 较大分组的位置
一、问题描述在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 S = "abbxxxxzyy" 中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。最终结果按照字典顺序输出。示例 1:输入: "abbxxxxzzy原创 2018-05-29 21:42:41 · 537 阅读 · 0 评论 -
leetcode-766. 托普利茨矩阵
一、问题描述如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵。给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True。示例 1:输入: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出: True解释:123451239512在上面这个矩阵中, 对角线分别是 "[9]", "[5, 5]", "[...原创 2018-05-29 21:31:28 · 301 阅读 · 0 评论 -
leetcode-746. 使用最小花费爬楼梯
一、问题描述数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost...原创 2018-05-29 20:34:29 · 931 阅读 · 1 评论 -
leetcode-674. 最长连续递增序列
一、问题描述给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。注意:数组长度不会超...原创 2018-05-24 17:17:17 · 371 阅读 · 0 评论 -
leetcode-665. 非递减数列
一、问题描述给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),满足 array[i] <= array[i + 1]。示例 1:输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例 2...原创 2018-05-24 17:06:08 · 666 阅读 · 0 评论 -
leetcode-53. 最大子序和
一、题目要求给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。二、代码class Solution: def maxSubAr...原创 2018-05-15 21:52:08 · 156 阅读 · 0 评论 -
leetcode-697. 数组的度超越100%
一、问题描述给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入: [1, 2, 2, 3, 1]输出: 2解释: 输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2...原创 2018-05-25 21:09:28 · 583 阅读 · 0 评论 -
leetcode-448. 找到所有数组中消失的数字
题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]1.代码和思路: 采...原创 2018-05-18 11:04:56 · 510 阅读 · 0 评论 -
leetcode-414. 第三大的数
一、题目描述二、代码和思路 首先先对代码排序,k初始化为2,从后往前遍历排序后的数组,如果存在nums[n] != nums[n-1]则将k-1,找到两组不相等的组合则n所在的位置即为第三大的数,否则返回最大的数即nums[-1]class Solution(object): def thirdMax(self, nums): """ :type nums:...原创 2018-05-17 21:19:06 · 155 阅读 · 0 评论 -
leetcode-283. 移动零
问题描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。方法一1.代码和思路: 这里采用遍历数组中的数找到0就删除并且在nums末尾append(0),因为在数组中非末尾删除元素时间复杂度为O(n),总的算法复杂...原创 2018-05-17 21:03:39 · 147 阅读 · 0 评论 -
leetcode-268. 缺失数字
题目要求:方法一:1.代码及思路: 先对nums排序,检查nums[0]的值如果不为0则返回0,然后从i=0位置开始,不断遍历整个数组,如果i+1位置的元素减去i位置的元素为1,则i后移否则循环停止,最后返回i位置的元素加1即所需的返回值class Solution(object): def missingNumber(self, nums): """ :t...原创 2018-05-17 16:03:08 · 348 阅读 · 0 评论 -
leetcode-217 存在重复元素
一、问题描述给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true二、代码和思路 这里采用将数组先排序,设i值从数组的位...原创 2018-05-17 14:56:17 · 677 阅读 · 0 评论 -
leetcode-189. 旋转数组
方法一:将pop出的数首段插入到数组中,由于首段插入是O(n)复杂度,所以整个代码复杂度为O(k*n)1.代码:class Solution(object): def rotate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: void Do not ret...原创 2018-05-17 10:18:02 · 333 阅读 · 0 评论 -
leetcode-169-求众数
方法一:将数组的不同的数以字典的形式存储起来,key值是数组的数,value值是在数组中出现的次数,取value大于2/len(nums)的key1.代码:class Solution(object): def majorityElement(self, nums): """ :type nums: List[int] :rtype: int ...原创 2018-05-16 23:14:57 · 303 阅读 · 0 评论 -
leetcode-从排序数组中删除重复项
一、题目要求给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 ...原创 2018-05-09 22:38:19 · 173 阅读 · 0 评论 -
leetcode-485. 最大连续1的个数
一、问题描述给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。二、代码和思路 因为连续1的和即为连续1的个数,所在我们只要求最大连续1的值即求最大连续1的个数class Solutio...原创 2018-05-20 07:52:38 · 186 阅读 · 0 评论 -
leetcode-561. 数组拆分 I
一、问题描述给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000].数...原创 2018-05-20 15:12:51 · 623 阅读 · 0 评论 -
leetcode-628. 三个数的最大乘积
一、问题描述给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。二、代码与思路 这里使用了一个比较蠢的方法0.0(如果想乘...原创 2018-05-21 14:43:05 · 1139 阅读 · 0 评论 -
leetcode-35. 搜索插入位置
一、题目要求给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0二、思路(这里使用...原创 2018-05-14 21:24:33 · 292 阅读 · 0 评论 -
leetcode-643. 子数组最大平均数 I
一、问题描述:给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75 注意:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,000]。二、代码和思路 ...原创 2018-05-21 09:54:20 · 564 阅读 · 0 评论 -
leetcode-605. 种花问题
一、题目描述二、代码和思路 设定m,count,num,i分别为flowerbed的长度、连续0的个数、可种植植物的数目、遍历数组的标准位 这里首先对flowerbed数组的长度进行检查如果为1且数组内元素为0则num += 1 整个循环过程中先对数组首尾预判,这里首尾对是否能种植植物的标准跟中间打的不一样,只要首尾分别有连续两个0即可种植一颗植物,然而在数组中只能碰到连续的三个...原创 2018-05-21 09:05:20 · 1609 阅读 · 0 评论 -
leetcode-27-移除元素(remove elements)
1.the desciption of the question:Given an array nums and a value val, remove all instances of that value in-place and return the new length.Do not allocate extra space for another array, you must do t...原创 2018-05-14 16:32:05 · 145 阅读 · 0 评论 -
leetcode-581. 最短无序连续子数组
问题描述给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数组长度范围在 [1, 10,000]。输入的数组可能...原创 2018-05-20 18:53:54 · 2274 阅读 · 0 评论 -
leetcode-566. 重塑矩阵
一、问题描述 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入: ...原创 2018-05-20 16:16:02 · 383 阅读 · 0 评论 -
leetcode-1两数之和
一、题目要求给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]二、代码1.第一次的代码是使用先复制整个nums的方法,每寻找一次复制一次class Solut...原创 2018-05-14 11:32:24 · 169 阅读 · 0 评论 -
leetcode-58. 最后一个单词的长度
一、问题描述给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5二、代码和思路1.从后往前遍历,首先跳开从后面开始的空格2.count开始计数字符元素直到下一个空格的位置或者已经遍历完字符串class Solution(objec...原创 2018-06-01 20:54:41 · 164 阅读 · 0 评论