一个二分函数直接拿捏
2024-12-30 19:26:33
发布于:上海
10阅读
0回复
0点赞
lower_bound函数可以找到这个数组中第一个大于等于x的数的下标
所以我们得加一个判断,防止找到的是大于x的数的下标,因为这里我的下标是从0开始的所以得加一
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n,a[110],x;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
cin>>x;
int pos=lower_bound(a,a+n,x)-a;
if(a[pos]==x)
cout<<pos+1;
else
cout<<"-1";
return 0;
}
全部评论 2
upper_bound是找第一个大于x的数的下标
格式:upper_bound(数组名+第一个下标,数组名+最后一个下标+1,要找的数);
(lower_bound 也一样)1周前 来自 上海
1这个比较简单,如果想要直接做的也行
1周前 来自 上海
1
有帮助,赞一个