LeetCode35. 搜索插入位置

原题如下:
LeetCode35. 搜索插入位置
文章图片

其实很简单,二分法就搞定了,但是我看到题解里面有人说有二分模板,是这样的:
LeetCode35. 搜索插入位置
文章图片

下面是他对这道题的解法:
LeetCode35. 搜索插入位置
文章图片

下面我想记录的是两个问题:

1、为什么条件判断是left<=right
2、为什么最后返回left就可以了
我认为是这样子的:
二分查找最后会纠结的无非是下面这两种情况:
LeetCode35. 搜索插入位置
文章图片

LeetCode35. 搜索插入位置
文章图片

在思考时,要记住的点是,(L+R)/2在这种邻近的情况下,mid是等于L的。
对于第一种情况,
第一次循环,由于在判断时,先判断的L,所以L会mid+1,也就是变成R。
第二次循环,L,R重合了,L不会被触发,反而是R会 -1,变到刚才的L位置。 至此,while循环结束。
返回L就是插入位置。
对于第二种情况,
第一次,L会 +1,和R重合。
第二次,L会+1,超过R,while结束。
返回L就是插入位置。
考虑清楚这两种情况,对于题解中讲述的这种模板也就清楚了。
【LeetCode35. 搜索插入位置】欢迎讨论。

    推荐阅读