数组
hjl1997
这个作者很懒,什么都没留下…
展开
-
406. 和大于S的最小子数组
题目描述给定一个由 n 个正整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组(连续)。如果无解,则返回 -1。样例 给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组解题思路 设立两个不断移动的指针l和r,统计满足条件的[l,r]区间的最小值代码public class Main { /* *原创 2017-12-06 11:37:33 · 266 阅读 · 0 评论 -
148. 颜色分类
题目描述给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。我们可以使用整数 0,1 和 2 分别代表红,白,蓝。注意事项 不能使用代码库中的排序函数来解决这个问题。 排序需要在原数组中进行。样例 给你数组 [1, 0, 1, 2], 需要将该数组原地排序为 [0, 1, 1, 2]。一个相当直接的解决方案是使用计数排序扫描2遍的原创 2017-12-06 10:35:44 · 211 阅读 · 0 评论 -
Two Sum II
题目描述给定一个已经按升序排列的数组,找到两个数使他们加起来的和等于特定数。 函数应该返回这两个数的下标,index1必须小于index2。注意返回的值不是 0-based。样例给定数组为 [2,7,11,15] ,target = 9 返回 [1,2]首先想到的是通过双重循环遍历数组中所有的数据对找出和为target的两个数,但是这样做的时间复杂度为O(n²)。解题思路 因为数组是已排序的,原创 2017-12-05 20:37:36 · 167 阅读 · 0 评论 -
61. 搜索区间
题目描述给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[-1, -1]样例 给出[5, 7, 7, 8, 8, 10]和目标值target=8, 返回[3, 4]思路 直接用两次二分搜索,第一次寻找target出现的第一个位置,第二次寻找target出现的最后一个位置,时间复杂度为O(2logn)。如果直接搜索到一个targ原创 2017-12-07 16:09:16 · 437 阅读 · 0 评论 -
75. 寻找峰值
题目描述你给出一个整数数组(size为n),其具有以下特点: 相邻位置的数字是不同的 A[0] < A[1] 并且 A[n - 2] > A[n - 1] 假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。注意事项 It’s guaranteed the array has at least one peak. The array原创 2017-12-07 17:08:12 · 594 阅读 · 0 评论 -
60. 搜索插入位置
题目描述给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以假设在数组中无重复元素。样例 [1,3,5,6],5 → 2 [1,3,5,6],2 → 1 [1,3,5,6], 7 → 4 [1,3,5,6],0 → 0思路 简单的二分搜索,在得到搜索结果后判断处理一下即可代码public class Solution {原创 2017-12-07 17:31:23 · 907 阅读 · 0 评论