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