九章算法 第二节 二分查找 Binary Search

来源:互联网 发布:2016mac flash安装不了 编辑:程序博客网 时间:2024/06/05 04:52

1.二分法题目及思路

题目:给定一个排好序的证书数组nums,和一个整数target,寻找target在nums中任何一个/第一次出现/最后一次出现的位置,不存在return-1。

思路:基本上看到时间复杂度要求O(logN)基本就是要用二分法,二分法的本质是保留有解的一半。

2.时间复杂度

T(n)=T(N/2)+O(1)=O(logN)

3.通用的二分法模板(四个要素)

①start+1<end

②start+(end-start)/2

③A[mid]==,<,>

④A[start] A[end] ? target 

4.题目类型

二分位置:一般会给你一个数组,让你找数组中第一个/最后一个满足某个条件的位置 

二分答案:

5.相关题目

Sqrt(x) :last number that number^2<=x

Search a 2D Matrix :last row that matrix[row][0]<=target

search insert position :first positon>=target  OR  (last position<target)+1

count of smaller number

search for a range/number of target

search in a big/infinite sorted array

first bad version  :first version that is bad version

 find minimum in rotated sorted array:position<=last number

search in rotated sorted array

find peak element

recover rotated sorted array

rotate string


原创粉丝点击