二分查找!
使用范围:
-
查找元素: 在有序数组中查找一个特定的元素。
-
找到边界: 查找有序数组中某个值的第一个或最后一个出现的位置。
-
搜索旋转排序数组: 在旋转排序数组中查找一个特定的元素。
-
查找峰值元素: 在数组中查找峰值元素。
-
求平方根: 计算一个非负整数的平方根。
-
搜索区间: 在有序数组中找到给定目标值的起始和结束位置。
-
缺失的数字: 在从 0 到 n 中缺失的数字。
-
搜索二维矩阵: 在二维矩阵中搜索一个值。
-
分割数组的最大值: 将数组分割为 m 段,使得每一段的和最大。
-
寻找旋转排序数组中的最小值: 在旋转排序数组中找到最小元素。
找边界:

找峰值

找平方根

找缺失的数字:如果缺失的数字在左侧,那么数组中索引位置小于该数字的元素值应该等于索引;如果缺失的数字在右侧,那么数组中索引位置大于等于该数字的元素值应该大于索引。
要求(数组顺序递增,而且只能找到一个)
如果缺失的数字很多,用unordered_map解决复杂度为On

寻找旋转排序数组中的最小值



浙公网安备 33010602011771号