![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 84
Wh1t3_55open
这个作者很懒,什么都没留下…
展开
-
Leetcode——Array-1588. 所有奇数长度子数组的和
Leetcode——Array-1588. 所有奇数长度子数组的和1.题目描述2.解题思路3.程序代码1.题目描述给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 1原创 2021-01-09 23:33:29 · 157 阅读 · 0 评论 -
Leetcode——Array-1560. 圆形赛道上经过次数最多的扇区
Leetcode——Array-1337.方阵中战斗力最弱的 K 行1.题目描述2.解题思路3.程序代码1.题目描述给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中,第 i 个阶段将会从扇区 rounds[i - 1] 开始,到扇区 rounds[i] 结束。举例来说,第 1 阶段从 rounds[0] 开始,到 rounds[1] 结束。请你以数组形式返回经过次数最多原创 2020-12-24 10:20:42 · 129 阅读 · 0 评论 -
Leetcode——Array-1337.方阵中战斗力最弱的 K 行
Leetcode——Array-1337.方阵中战斗力最弱的 K 行1.题目描述2.解题思路3.程序代码1.题目描述给你一个大小为 m * n 的方阵 mat,方阵由若干军人和平民组成,分别用 1 和 0 表示。请你返回方阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。示例 1:输入:mat =[原创 2020-11-13 22:34:07 · 140 阅读 · 0 评论 -
Leetcode——Array-1002.查找常用字符
Leetcode——Array-1002.查找常用字符1.题目描述2.解题思路3.程序代码1.题目描述给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:[“bella”,“label”,“roller”]输出:[“e”,“l”,“l”]示例 2:输入:[“cool”,“lock”,“cook”]原创 2020-10-23 23:45:44 · 118 阅读 · 0 评论 -
Leetcode——Array-914.卡牌分组
Leetcode——Array-830. 较大分组的位置1.题目描述2.解题思路3.程序代码1.题目描述给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:输入:[1,1,1,2,原创 2020-10-19 14:49:20 · 130 阅读 · 0 评论 -
Leetcode——Array-830. 较大分组的位置
Leetcode——Array-830. 较大分组的位置1.题目描述2.解题思路3.程序代码1.题目描述在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 S = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。最终结果按照字典顺序输出。示例 1:输入: “abbxxxxzzy”输出: [[3,6]原创 2020-06-24 23:48:48 · 83 阅读 · 0 评论 -
Leetcode——Array-746.使用最小花费爬楼梯
Leetcode——Array-746.使用最小花费爬楼梯1.题目描述2.解题思路3.程序代码1.题目描述数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可原创 2020-05-27 17:01:49 · 124 阅读 · 0 评论 -
Leetcode——Array-724. 寻找数组的中心索引
Leetcode——Array-724. 寻找数组的中心索引1.题目描述2.解题思路3.程序代码1.题目描述给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出: 3解释:索引3 (nums[3] =原创 2020-05-27 11:10:56 · 221 阅读 · 0 评论 -
Leetcode——Array-717.1比特与2比特字符
Leetcode——Array-717.1比特与2比特字符1.题目描述2.解题思路3.程序代码1.题目描述有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。示例 1:输入:bits = [1, 0, 0]输出: True解释:唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例 2:输入:bits = [1, 1原创 2020-05-25 22:39:08 · 136 阅读 · 0 评论 -
Leetcode——Array-697.数组的度
Leetcode——Array-697.数组的度1.题目描述2.解题思路3.程序代码1.题目描述给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入: [1, 2, 2, 3, 1]输出: 2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3], [原创 2020-05-25 21:56:11 · 251 阅读 · 0 评论 -
Leetcode——Array-661. 图片平滑器
Leetcode——Array-661. 图片平滑器1.题目描述2.解题思路3.程序代码1.题目描述包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[0, 0, 0],[0, 0, 0],[0, 0, 0]]解释:对于点 (0,0), (0,2),原创 2020-05-25 17:18:01 · 130 阅读 · 0 评论 -
Leetcode——Array-605. 种花问题
Leetcode——Array-605. 种花问题1.题目描述2.解题思路3.程序代码1.题目描述假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n = 1输出: True示例原创 2020-05-22 17:25:52 · 190 阅读 · 0 评论 -
Leetcode——Array-566. 重塑矩阵
Leetcode——Array-566. 重塑矩阵1.题目描述2.解题思路3.程序代码1.题目描述在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入:nums =[[1原创 2020-05-21 22:31:51 · 144 阅读 · 0 评论 -
Leetcode——Array-509. 斐波那契数
Leetcode——Array-509. 斐波那契数1.题目描述2.解题思路3.程序代码1.题目描述斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1.示例 2:输原创 2020-05-20 23:51:04 · 151 阅读 · 0 评论 -
Leetcode——Array-189. 旋转数组
Leetcode——Array-189. 旋转数组1.题目描述2.解题思路3.程序代码1.题目描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2原创 2020-05-20 15:04:47 · 154 阅读 · 0 评论 -
Leetcode——Array-169. 多数元素
Leetcode——Array-169. 多数元素1.题目描述2.解题思路3.程序代码1.题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 22.解题思路解法一:暴力解法其实也不算暴力解法,就是使用python自带的sort函数先排序,因为多数元素超过n//2,所以第n原创 2020-05-20 11:14:53 · 181 阅读 · 0 评论 -
Leetcode——Array-121. 买卖股票的最佳时机
Leetcode——Array-121. 买卖股票的最佳时机1.题目描述2.解题思路3.程序代码1.题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润原创 2020-05-19 17:45:10 · 143 阅读 · 0 评论 -
Leetcode——Array-118. 杨辉三角
Leetcode——Array-118. 杨辉三角1.题目描述2.解题思路3.程序代码1.题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]2.解题思路解法一:按照定义解题解法二:取巧法观察一下规律,发现当前一行只比上一行多了一个元素,最最关键的一点:本行元素等于上一行元素往后错一位再逐个相加。原创 2020-05-19 16:44:18 · 121 阅读 · 0 评论 -
Leetcode——Array-88. 合并两个有序数组
Leetcode——Array-88. 合并两个有序数组1.题目描述2.解题思路3.程序代码1.题目描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2原创 2020-05-19 15:29:31 · 132 阅读 · 0 评论 -
Leetcode——Array-53. 最大子序和
Leetcode——Array-53. 最大子序和1.题目描述2.解题思路3.程序代码1.题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。2.解题思路解法一:DP(动态规划思想)不断的比较累加值和当前值,有两种情况:1原创 2020-05-19 13:42:26 · 134 阅读 · 0 评论 -
Leetcode——Array-27. 移除元素
Leetcode——Array-27. 移除元素1.题目描述2.解题思路3.程序代码1.题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要原创 2020-05-17 23:59:27 · 115 阅读 · 0 评论 -
Leetcode——Array-26. 删除排序数组中的重复项
Leetcode——Array-26. 删除排序数组中的重复项1.题目描述2.解题思路3.程序代码1.题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定原创 2020-05-17 15:22:46 · 135 阅读 · 0 评论 -
Leetcode——Array-1.两数之和
Leetcode——Array-1-两数之和1.题目描述2.解题思路3.程序代码1.题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]2.解题思路用字典模拟哈希求解,速度是最快原创 2020-05-17 15:12:45 · 233 阅读 · 0 评论