
LeetCode
Mr-LH
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Array&Matrix-9.数组的度(697)
1.题目给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入: [1, 2, 2, 3, 1]输出: 2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, ...原创 2020-04-30 15:56:34 · 239 阅读 · 0 评论 -
Array&Matrix-8.优美的排列 II(667)
1.题目给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件:① 如果这个数组是 [a1, a2, a3, … , an] ,那么数组 [|a1 - a2|, |a2 - a3|, |a3 - a4|, … , |an-1 - an|] 中应该有且仅有 k 个不同整数;.② 如果存在多种答案,你只需实现并返回其中任意一种.示例 1:...原创 2020-04-06 18:03:38 · 181 阅读 · 0 评论 -
Array&Matrix-7.寻找重复的数(287)
1.题目给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:1.不能更改原数组(假设数组是只读的)。2.只能使用额外的 O(1) 的空间。3.时间复杂度小...原创 2020-04-02 10:07:33 · 155 阅读 · 0 评论 -
Array&Matrix-6.错误的集合(645)
1.题目集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意:给定数组...原创 2020-03-30 21:41:15 · 109 阅读 · 0 评论 -
Array&Matrix-5.有序矩阵中第K小的元素(378)
1. 题目给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。示例:matrix = [[ 1, 5, 9],[10, 11, 13],[12, 13, 15]],k = 8,返回 13。说明:你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。2. 思路以左上角为最小值,右下...原创 2020-03-24 10:06:11 · 125 阅读 · 0 评论 -
Array&Matrix-4.搜索二维矩阵II(240)
1. 题目编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],...原创 2020-03-22 23:48:04 · 113 阅读 · 0 评论 -
Array&Matrix-3.最大连续1的个数(485)
1. 题目给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。2. 思路遍历数组遇到1记录个数。遇到零,则将1个数清零,再遇到1,继续记录。所以需要一个变量保存上一个1的个数的值...原创 2020-03-22 20:10:07 · 174 阅读 · 0 评论 -
Array&Matrix-2. 重塑矩阵(566)
1.题目在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入:nu...原创 2020-03-21 23:27:47 · 121 阅读 · 0 评论 -
Array&Matrix-1. 轻松移动零点(283)
1. 轻松移动零点(283)给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路:遍历数组,遇到第几个非零元素就与对应的数组位置上元素交换。相当于双指针,快指针i 遍历数组;慢指针idx 遇非零自增...原创 2020-03-21 20:05:46 · 165 阅读 · 0 评论 -
数组-杨辉角Ⅱ(119)
1.题目给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。示例:输入: 3输出: [1,3,3,1]2.思路对118杨辉三角进行变型,不用存储所有的值,只保存前一行的值即可。class Solution: def getRow(self, rowIndex: int) -> List[int]: res = [1] fo...原创 2020-03-06 20:43:42 · 112 阅读 · 0 评论 -
数组-杨辉三角(118)
1 .题目给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]2.思路(1)每一行第一个和最后一个都是1. 当前元素等于上一行的同列元素+ 前列元素。def generate(numRows): ...原创 2020-03-04 16:50:39 · 141 阅读 · 0 评论 -
数组-88.合并两个有序数组
1.题目给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...原创 2020-03-04 15:35:35 · 114 阅读 · 0 评论 -
数组-67.二进制求和
1.题目给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”2.思路(1) 将二进制转换成十进制求和。class Solution: def addBinary(self, ...原创 2020-02-29 14:50:09 · 281 阅读 · 0 评论 -
数组-66.加一
1.题目给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。2.思...原创 2020-02-24 22:04:30 · 176 阅读 · 0 评论 -
数组-最大子序列(分治,动态规划)
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路暴力破解(超时)穷举所有子空间,然后求和取最大值。代码class Solution: def maxSubArray(self...原创 2020-02-24 16:45:53 · 402 阅读 · 0 评论 -
数组-3.二分查找
1.题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。2.代码class Solution: def search(self, nums: List[int], target: int) -> int: n = len(nums) ...原创 2020-02-12 21:21:46 · 283 阅读 · 0 评论 -
数组-2.搜索插入位置(二分法)
1.题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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二分查...原创 2020-02-12 21:12:21 · 240 阅读 · 0 评论 -
数组-1.移除元素
1. 题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。2.思路(1) 把不等于val 的值覆盖,覆盖数即为数组的新长度。(2) 借鉴题解中 双指针, 一个从头向后,一个从尾...原创 2020-02-11 18:31:32 · 142 阅读 · 0 评论 -
6.有效的括号
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “...原创 2019-12-26 17:34:48 · 112 阅读 · 0 评论 -
5.最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路利用set和zip, 将列表中每个字符串的同一个位...原创 2019-12-26 15:32:01 · 120 阅读 · 0 评论 -
4. 罗马数字转整数
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2019-12-23 22:16:19 · 99 阅读 · 0 评论 -
3.回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。思路:转换成...原创 2019-12-19 21:56:18 · 148 阅读 · 0 评论 -
2. 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。方法1最简单最暴力的,把X按位...原创 2019-12-08 16:49:45 · 114 阅读 · 0 评论 -
1.猜数字
从简单到困难。 答案均为python1.猜数字小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。示例 1:输入:guess = [1,2,3], a...原创 2019-12-08 15:50:12 · 205 阅读 · 0 评论