代码随想录 704. 二分查找

36 阅读1分钟

704. 二分查找 - 力扣(LeetCode)

左闭右闭 普通写法

[left,right] left可以==right

    int left=0;
    int right=nums.size()-1;
    while(left<=right)
    {
        int mid=(left+right)/2;
 
       if(target<nums[mid])right=mid-1;

        else if(target>nums[mid])left=mid+1;

        else return mid;
    }
    return -1;

左闭右开 [left,right) left不可以==right

    
    int left=0;
    int right=nums.size();
    while(left<right)
    {
        int mid=(left+right)/2;
        if(target<nums[mid])right=mid;

        else if(target>nums[mid])left=mid+1;

        else return mid;
    }
    return -1;