看到这道题的第一反应就是二分查找,由于是递增的所以二分查找所需的时间很短 ,设置一个左,一个右,一个中间,如果判断吧不同需要想下前面是否一样,如果是那么就找到,不是再继续二分查找。
我的思路出错了,应该是找左子数组末位元素
下面这个方法是书上的,比较好理解,
没有最后一个多余的判断的话,会永远返回0,因为程序是有可能跳出循环的,就是在当前长度找不到的时候,所以直接返回length即可(只有这一种可能找不到从而跳出循环)
修改了后还有问题,最后判断的条件有问题
谨记,一定是和nums的长度比较,因为找不到的话,那么就说明最后L和R会收敛至相等的程度,然后L+1(越界,等于length),所以才需要和length去比较!