求助(玄关)
  • 板块灌水区
  • 楼主Danny_chan
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/3/27 18:06
  • 上次更新2024/3/27 20:38:35
查看原帖
求助(玄关)
1032960
Danny_chan楼主2024/3/27 18:06

请问一下大佬们,二分这两个有区别么

int l=0,r=n+1;
while(l<=r){
		int m=(l+r)/2;
		if(a[m]<x){
			l=m;
		}
		else r=m;
	}
	return r;
int l=0,r=n-1;
while(l<r){
	int m=(l+r)/2;
	if(a[m]==x){
		cout<<mid<<" ";
		return ;
	}
	if(a[m]<x){
		l=m+1;
	}
	else r=m-1;
}

还有为什么第一个最后返回r就是正确结果

2024/3/27 18:06
加载中...