
LeetCode-Array
GolvenDong
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode-Array-【73】搜索二维矩阵(Java)
题目描述:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1, 3, 5, 7],[10, 11, 16, 20],[23, 30, 34, 50]]target = 3输出: true思路:暴力破解法:直接遍...原创 2019-11-23 10:56:36 · 120 阅读 · 0 评论 -
LeetCode-Array-【73】矩阵置零(Java)
题目描述:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]解法:思路一:首先遍历matrix,找到存在0的行和列,然后将对应的行和列记录到HshSet中再次遍历matrix,找到Has...原创 2019-11-22 11:40:29 · 167 阅读 · 0 评论 -
LeetCode-Array-【62】【63】不同路径(Java)
题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:从左上...原创 2019-11-17 11:44:46 · 224 阅读 · 0 评论 -
LeetCode-Array-【56】合并区间(Java)
题目描述:给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].解法:思路题目要求我们将重叠的部分合并在一起,首先我们规定int left = intervals[ i ][ 0 ];int ...原创 2019-11-12 13:28:00 · 234 阅读 · 0 评论 -
LeetCode-Array-【55】跳跃游戏(Java)
题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。解法:回溯算法:思想:本题较容易想到的就是回溯算法,我们模拟元素能够跳转的...原创 2019-11-11 16:57:12 · 226 阅读 · 0 评论 -
LeetCode-Array-【54】螺旋矩阵(Java)
题目描述:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]解法:规律解题:对于每层,我们从左上方开始以顺时针的顺序遍历所有元素,假设当前层左上角坐标是(r1, c1),右下角坐标是(r...原创 2019-11-10 11:19:01 · 217 阅读 · 0 评论 -
LeetCode-Array-【53】最大子序和(Java)
题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解法:动态规划解题:动态规划的是首先对数组进行遍历,当前最大连续子序列和为 sum,结果为 ans如果 sum > 0,则说明 s...原创 2019-11-10 11:14:56 · 117 阅读 · 0 评论 -
LeetCode-Array-【48】旋转图像
题目描述:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]解法:旋转矩阵...原创 2019-11-09 10:20:55 · 125 阅读 · 0 评论 -
LeetCode-Array-【39】【40】组合总和I,II(Java)
题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:...原创 2019-11-08 11:09:51 · 173 阅读 · 0 评论 -
LeetCode-Array-【34】在排序数组中查找元素的第一个元素和最后一个元素(Java)
题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10]...原创 2019-11-06 20:49:40 · 266 阅读 · 0 评论 -
LeetCode-Array-【33】搜索旋转排序数组(Java)
题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [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,1,2]...原创 2019-11-05 23:00:44 · 142 阅读 · 0 评论 -
Leetcode-Array-下一个序列【31】(Java)(字典序算法)
题目描述:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1字典序算法:例:要将[3,5,7,8,6,4]...原创 2019-11-05 20:39:11 · 185 阅读 · 0 评论 -
LeetCode-Array-移除元素(Java)
题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2019-11-05 13:16:16 · 228 阅读 · 0 评论 -
leetcode-Array-删除排序数组中的重复项(Java)
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定...原创 2019-11-05 13:01:54 · 217 阅读 · 1 评论 -
LeetCode-Array-四数之和(18)
题目描述:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合...原创 2019-11-05 12:22:16 · 203 阅读 · 0 评论 -
LeetCode-Array-最接近的三个数之和
题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).方法:双指针法:将数组进行排...原创 2019-11-05 10:57:21 · 164 阅读 · 0 评论 -
LeetCode-Array-三数之和(Java)
题目描述:给定一个包含 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 18:48:57 · 198 阅读 · 0 评论 -
LeetCode-Tags-Array-盛最多水的容器(Java)
题目描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水...原创 2019-11-04 16:26:06 · 139 阅读 · 0 评论