题目:
在排序数组中查找元素(包含重复元素)的第一个和最后一个位置。
二分法的思想非常简单,然而其中的实现细节非常繁琐,容易出错。本推文非常详细地介绍二分法的实现细节。
总结几点注意事项:
- 初始上、下界的取值;
- 判断语句不要出现 else ,全部展开成 else if 方便理解;
- 注意搜索区间和 while 的终止条件;
- 上、下界的更新方式与搜索区间存在联系;
- 查找重复元素的左/右边界的时候,当nums[mid] == target 时不要立即返回,而要收紧右/左侧边界以确定左/右边界。