二分查找

Binary Search 时间复杂度\(O(logn)\) 空间复杂度\(O(1)\)

基础操作

  • 35. 搜索插入位置 最佳题解
    func searchInsert(nums []int, target int) (ans int) {
      l, r, ans:= 0, len(nums)-1, len(nums) // ans=len(nums)默认target比所有num都大
      for l <= r{
          mid := (l+r)>>1
          if target <= nums[mid]{ // 如果有num比target大则更新ans
              ans = mid
              r = mid-1
          }else{
              l = mid+1
          }
      }
      return
    }