![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode-数组
文章平均质量分 75
黄老匹夫
这个作者很懒,什么都没留下…
展开
-
Leetcode 15-3Sum
题目:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。 此题为数组题,思前想后觉得用三指针遍历比较靠谱。先将数组排序,使用i,j,k三个指针。i指向最小的数可能的位置,k指向最大的数的位置,j指向中间的数可能的位置。遍历原理核心为每次遍历会遇到...原创 2018-04-24 11:46:07 · 431 阅读 · 0 评论 -
Leetcode-40 Combination Sum II
题目:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。 思路:和上一题思路很像,不同的是有了重复,同一个数字只能用一次。因此需要注意: 1.取完nums.length-1的数之后...原创 2018-05-22 22:33:38 · 97 阅读 · 0 评论 -
Leetcode 39-Combination Sum
题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。 思路: 这题比较烦,最近事比较多,所以就一直卡着没动过。思路倒是对的,用递归,然后用一个int标记当前遍历的位置...原创 2018-05-21 22:39:38 · 94 阅读 · 0 评论 -
Leetcode 31-Next Permutation
题目:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1 思路:要寻找一个更大的排列,很自然想到要找数...原创 2018-05-07 16:39:39 · 134 阅读 · 0 评论 -
Leetcode 27-Remove Element
题目: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 思路: 这题和26题基本一样,一个遍历位i,一个待修改位j,遍历位不等于val的时候就传给j,逻...原创 2018-04-26 16:38:08 · 70 阅读 · 0 评论 -
Leetcode 26-Remove Duplicates from Sorted Array
题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 思路:题目很简单,因为已经排好序,只需用i遍历数组,j来标记修改位,将遍历得到到的数传给j即可。 贴上代码。class Solution { public in...原创 2018-04-26 16:10:11 · 83 阅读 · 0 评论 -
Leetcode 18-4Sum
题目: 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。 思路:本题为两数和,三数和,最近三数和的进阶题,方法与三数和的题目类似,只是多了个外部循环遍历...原创 2018-04-25 21:01:45 · 65 阅读 · 0 评论 -
Leetcode 35-Search Insert Position
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。 思路:这题很简单,先用二分法找值,找到返回即可。没找到的情况共有三种,1是target比最小的要小,此时右箭头==-1。2是target比最大的还要大,此时左箭头==n。最后就是target在某两个数之间,此时索引在右箭头与左箭头之间。当...原创 2018-05-09 23:30:22 · 99 阅读 · 0 评论 -
Leetcode 34-Search for a Range
题目: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。 思路:题目很简单,先用二分法找到其中一个target的值,然后向前和向后找范围即可。 贴上代码: class Solution { pu...原创 2018-05-09 22:34:40 · 188 阅读 · 0 评论 -
Leetcode 33-Search In Rotated Sorted Array
题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。 思路:这个题目有点烦,想通了其实也挺简单的。题给数组是一个旋转对...原创 2018-05-09 22:15:16 · 78 阅读 · 0 评论 -
Leetcode 11-Container With Most Water
题目: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 注意:你不能倾斜容器,n 至少是2。此题为数组题,由题意很容易想到第一种全遍历的算法,双箭头遍历数组的算法,该算法的...原创 2018-04-20 15:20:37 · 122 阅读 · 0 评论 -
Leetcode 16-3Sum Closest
题目: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 这是一道数组题,并和15题三数之和十分接近,因此采用的算法思想也十分接近,都是三指针遍历,分别为i指向最小位,j为中间位,k为最大位。遍历的情况可分为三种: 1.nums[i]+...原创 2018-04-24 17:29:58 · 135 阅读 · 0 评论 -
Leetcode 41-First Missing Positive
题目:给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。 最近项目忙,难得有心情抽空刷一题Leetcode(发现还是一题困难= =,脑阔疼)。 思路: 这...原创 2018-06-05 23:19:07 · 109 阅读 · 0 评论