二分模板和区别

 模板一

int[] nums = {0, 0, 1, 2, 2, 5, 6};
int l = 0, r = 6, target = 0;
while(l < r)
{
    int mid = l + r >> 1;
    if(nums[mid] >= target) r = mid;
    else l = mid + 1;
}
return l;

//返回结果是0

 模板二

int[] nums = {0, 0, 1, 2, 2, 5, 6};
int l = 0, r = 6, target = 0;
while(l < r)
{
    int mid = l + r + 1>> 1;
    if(nums[mid] <= target) l = mid;
    else r = mid - 1;
}
return l;

//返回结果是1
原文地址:https://www.cnblogs.com/benzikun/p/14629725.html