目录

力扣总结 常见算法(五):二分查找

  • 二分查找是一种针对有序集合的高效查找算法,时间复杂度为 O(logN)
  • 二分查找每一轮通过检查中间元素,将查找范围缩小一半
  • python 中可以直接调用 bisect 来实现二分查找

有时中间元素的判定较为复杂,不是直接比较,可以用 bisect 的 key 实现

1 基础

  • 0034 在排序数组中查找元素的第一个和最后一个位置
  • 0069 x 的平方根
  • 0074 搜索二维矩阵
  • 0278 第一个错误的版本
  • 0374 猜数字大小

2 进阶

  • 0033 搜索旋转排序数组
  • 0081 搜索旋转排序数组 II
  • 0153 寻找旋转排序数组中的最小值
  • 0154 寻找旋转排序数组中的最小值 II
  • 0162 寻找峰值
  • 0222 完全二叉树的节点个数

3 挑战

  • 0004 寻找两个正序数组的中位数
  • 0209 长度最小的子数组