二分搜索
二分搜索模板
典型示例
// 二分搜索最常用模板
public int Search(int[] nums, int target)
{
// 1、初始化left、right
int left = 0;
int right = nums.Length - 1;
// 2、处理for循环
while (right - left > 1)
{
int mid = left + (right - left) / 2;
// 3、比较nums[mid]和target值
if (nums[mid] == target)
{
return mid;
}
else if (nums[mid] < target)
{
left = mid;
}
else
{
right = mid;
}
}
// 4、最后剩下两个元素,手动判断
if (nums[left] == target)
{
return left;
}
else if (nums[right] == target)
{
return right;
}
else
{
return -1;
}
}模板

常见题目
搜索区间
搜索插入位置
搜索二维矩阵
第一个错误的版本
寻找旋转排序数组中的最小值
寻找旋转排序数组中的最小值II
搜索旋转排序数组
搜索旋转排序数组II
总结
练习
最后更新于