二分查找函数中的左界限为何要多加1
bool bi-sort(int num[],int left,int right,int t)
{
int l=left+1,r=right;
while(l<=r)
{
int mid=l+((r-l)/2);
if(num[mid]>t)
r=mid-1;
else if(num[mid]<t)
l=mid+1;
else return true;
}
return false;
}
这样AC
bool bi-sort(int num[],int left,int right,int t)
{
int l=left,r=right;
while(l<=r)
{
int mid=l+((r-l)/2);
if(num[mid]>t)
r=mid-1;
else if(num[mid]<t)
l=mid+1;
else return true;
}
return false;
}
bool bi-sort(int num[],int left,int right,int t)
{
int l=left,r=right;
while(l<=r)
{
int mid=l+((r-l)/2);
if(num[mid]>t)
r=mid-1;
else if(num[mid]<t)
l=mid+1;
else return true;
}
return false;
}
这样会WA三个点