数组&字符串
Yobol2016
不积跬步无以至千里
展开
-
LC - 跳跃游戏II
跳跃游戏II题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃次数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3&nbs...原创 2020-05-04 23:40:23 · 288 阅读 · 0 评论 -
山脉数组中查找目标值
山脉数组中查找目标值题目描述给你一个 山脉数组mountainArr,请你返回能够使得mountainArr.get(index)等于target的最小下标。如果不存在这样的下标,就请返回-1。何为山脉数组?如果数组A是一个山脉数组的话,那它满足如下条件:首先,A.length >= 3;其次,在0 < i < A.length - 1条件下,存在i使得:A[0...原创 2020-04-30 00:00:38 · 206 阅读 · 0 评论 -
LeetCode 0378 -- 有序矩阵中第K小的元素
有序矩阵中第K小的元素题目描述给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。解题思路个人AC无。最优解二分查找声明两个变量m...原创 2019-12-16 11:59:46 · 136 阅读 · 0 评论 -
LeetCode 0240 -- 搜索二维矩阵II
搜索二维矩阵题目描述编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13...原创 2019-12-13 10:30:22 · 125 阅读 · 0 评论 -
LeetCode 0058 -- 最后一个单词的长度
最后一个单词的长度题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例 1:输入: "Hello World"输出: 5示例 2:输入: "Hello "输出: 5解题思路个人ACclass Solution { public in...原创 2019-12-12 22:08:05 · 97 阅读 · 0 评论 -
LeetCode 0238 -- 除自身以外数组的乘积
除自身以外数组的乘积题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出...原创 2019-12-08 19:55:52 · 114 阅读 · 0 评论 -
LeetCode 0043 -- 字符串相乘
字符串相乘题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 ...原创 2019-12-05 15:30:53 · 137 阅读 · 0 评论 -
LeetCode 0581 -- 最短无序连续子数组
最短无序连续子数组题目描述给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明:输入的数组长度范围在 [1,...原创 2019-12-03 11:39:04 · 137 阅读 · 0 评论 -
LeetCode 0448 -- 找到所有数组中消失的数字
找到所有数组中消失的数字题目描述给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[...原创 2019-12-02 14:55:12 · 141 阅读 · 0 评论 -
LeetCode 0072 -- 编辑距离
编辑距离题目描述给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = "horse", word2 = "ros"输出: 3解释: horse -> rorse (将 'h' 替换为 'r')rorse -&g...原创 2019-12-01 10:57:46 · 126 阅读 · 0 评论 -
LeetCode 0162 -- 寻找峰值
寻找峰值题目描述峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其...原创 2019-11-25 21:49:11 · 116 阅读 · 0 评论 -
LeetCode 0059 -- 螺旋矩阵II
螺旋矩阵题目描述给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]解题思路个人ACclass Solution { public int[][] generateMatrix(int n) { in...原创 2019-11-22 23:38:28 · 167 阅读 · 0 评论 -
LeetCode 0387 -- 字符串中的第一个唯一字符
字符串中的第一个唯一字符题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.**注意事项:**您可以假定该字符串只包含小写字母。解题思路个人ACclass Solution { public int firstUniqChar(St...原创 2019-11-21 22:09:18 · 102 阅读 · 0 评论 -
LeetCode 0125 -- 验证回文串
验证字符串题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。**说明:**本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false解题思路个人ACclass Solution { p...原创 2019-11-18 17:54:46 · 106 阅读 · 0 评论 -
LeetCode 0118 -- 杨辉三角形
杨辉三角形题目描述给定一个非负整数 *numRows,*生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]解题思路个人ACclass Solution { public List<...原创 2019-11-18 13:28:09 · 99 阅读 · 0 评论 -
LeetCode 0084 -- 柱状图中最大的矩形
柱状图中最大的矩形题目描述给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10解题思路个...原创 2019-11-16 17:08:36 · 149 阅读 · 0 评论 -
LeetCode 0088 -- 合并两个有序数组
合并两个有序数组题目描述给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2...原创 2019-11-16 15:30:01 · 118 阅读 · 0 评论 -
LeetCode 0079 -- 单词搜索
单词搜索题目描述给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABC...原创 2019-11-16 15:14:13 · 114 阅读 · 0 评论 -
LeetCode 0076 -- 最小覆盖子串
最小覆盖子串题目描述给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。解题思路个人AC理解有偏差,没有AC。单纯地以为T中的字母...原创 2019-11-15 14:33:07 · 103 阅读 · 0 评论 -
LeetCode 0075 -- 颜色分类(荷兰国旗问题)
颜色分类(荷兰国旗问题)题目描述给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]解题思路个人AC最直观的解决方案是使...原创 2019-11-14 13:50:05 · 160 阅读 · 0 评论 -
LeetCode 0073 -- 矩阵置零
矩阵置零题目描述给定一个m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法**。**示例 1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]示例 2:输入: [&n...原创 2019-11-14 13:32:19 · 109 阅读 · 0 评论 -
LeetCode 0066 -- 加一
加一题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...原创 2019-11-13 19:57:21 · 129 阅读 · 0 评论 -
LeetCode 0056 -- 合并区间
合并区间题目描述给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]。示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重...原创 2019-11-13 18:14:42 · 107 阅读 · 0 评论 -
LeetCode 0054 -- 螺旋矩阵
螺旋矩阵题目描述给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12...原创 2019-11-13 14:09:16 · 121 阅读 · 0 评论 -
LeetCode 0049 -- 字母异位词分组
字母异位词分组题目描述给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例 1:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母;不考虑答案输出的顺序。...原创 2019-11-12 13:04:58 · 93 阅读 · 0 评论 -
LeetCode 0048 -- 旋转图像
旋转图像题目描述给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9...原创 2019-11-11 10:45:01 · 94 阅读 · 0 评论 -
LeetCode 0041 -- 缺失的第一个正数
缺失的第一个正整数题目描述给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。解题思路个人ACBitmap,首先,当nums == null |...原创 2019-11-09 15:12:44 · 86 阅读 · 0 评论 -
LeetCode 0268 -- 缺失的数字
缺失的数字题目描述给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?解题思路个人AC将原数组看作一个“BitMap”:第一次遍历...原创 2019-11-09 14:14:47 · 125 阅读 · 0 评论 -
LeetCode 0038 -- 报数
报数题目描述报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"(“一个一”) , 即11。11被读作"two 1s"(“两个一”), 即21。21被读作"one 2", "one 1"("一个二", "一个一") , 即12...原创 2019-11-09 11:17:54 · 93 阅读 · 0 评论 -
LeetCode 0036 -- 有效的数独
有效的数独题目描述判断一个9x9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pLo7a99u-1573187153504)(assets/250px-Sudoku...原创 2019-11-08 12:26:18 · 117 阅读 · 0 评论 -
LeetCode 0034 -- 在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入:...原创 2019-11-08 10:34:51 · 137 阅读 · 0 评论 -
LeetCode 0028 -- 实现strStr()
实现strStr()题目描述示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当needle是空字符串时我们应当返回 0 。这与C语言的...原创 2019-11-07 11:40:07 · 118 阅读 · 0 评论 -
LeetCode 0033 -- 搜索旋转排序数组
搜索旋转排序数组题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,...原创 2019-11-06 13:10:43 · 108 阅读 · 0 评论 -
LeetCode 0026 -- 删除排序数组中的重复项
删除排序数组中的重复项题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度...原创 2019-11-06 10:53:24 · 98 阅读 · 0 评论 -
LeetCode 0022 -- 括号生成
括号生成题目描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]解题思路个人AC回溯算法可以用来穷尽复杂、递归问题的所有解。一般地,当遇到需要求出所有可能解的问题时,可以考虑从回溯(...原创 2019-11-05 15:30:02 · 111 阅读 · 0 评论 -
LeetCode 0020 -- 有效的括号
有效的括号题目描述给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false...原创 2019-11-05 11:38:56 · 155 阅读 · 0 评论 -
LeetCode 0015 -- 三数之和
三数之和题目描述给定一个包含n个整数的数组 nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c = 0?找出所有满足条件且不重复的三元组。**注意:**答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解题思路个...原创 2019-11-04 17:03:35 · 106 阅读 · 0 评论 -
LeetCode 0014 -- 最长公共前缀
最长公共前缀题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。解题思路个人AC依次遍历每个字符串...原创 2019-11-04 15:34:09 · 98 阅读 · 0 评论 -
LeetCode 0013 -- 罗马数字转整数
罗马数字转整数题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,...原创 2019-11-04 15:00:10 · 90 阅读 · 0 评论 -
LeetCode 0011 -- 盛最多水的容器
盛最多水的容器题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。**说明:**你不能倾斜容器,且 n 的值至少为 2。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(...原创 2019-11-04 13:40:03 · 159 阅读 · 0 评论