二分搜索

二分搜索

2024年7月25日

21:27

 

 

 

  1. 正常二分思想
  2. 重点是遇到不同的数怎么定边界,怎么记录答案。
    1. 特殊情况:没有数字或者只有一个数,直接判断返回
    2. 先定一个ans=-1用于记录答案,l、r记录左右边界
    3. 看中点数值,比target小,说明比target的的数字在右边,l = mid+1
    4. 比target大,ans=mid,还需要看看左边是不是有比这个mid还小但是符合》=num的,r = mid-1
    5. 不断重复,直到没有数为止。
  3. 和2思路相同
  4. 寻找任意一个峰值------》可以得出一个经验,某侧必有,那么用二分。
    1. -1和N默认为极小数,看0位置和n-1位置是不是峰值,是就返回
    2. 如果都不是,那么在左侧,从0到1是上升的,从N-2到N-1是下降的,则在中间必有解,取中点继续检查,l=0,r = N-2
    3. mid = l+(r-l)/2,
      1. 如果mid是峰值,就返回mid,
      2. 如果mid-1到mid上升,那么右侧必有,l=mid+1
      3. 如果mid到mid+1下降,那么左侧必有,r =mid-1

例题:https://leetcode.cn/problems/find-peak-element/

posted @ 2024-07-27 22:28  刘?  阅读(3)  评论(0编辑  收藏  举报