二分查找
hjl1997
这个作者很懒,什么都没留下…
展开
-
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 · 426 阅读 · 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 · 570 阅读 · 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 · 833 阅读 · 0 评论