**题目:
有一段长度为n的序列,q次查找,每次查找输入一个值x,需要你判断序列中是否存在值等于x的元素,若存在,请输出Yes,否则输出No,保证序列中每一个元素都是唯一的。
输入:
13 2
2 5 8 10 15 25 35 45 50 60 70 80 90
10
18
输出:
Yes
No
分析这道题很简单:不过多介绍
源码:**
include
using namespace std;
int main(void)
{
int n,q;
cin>>n>>q;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
for(int j=0;j<q;j++)
{
int as,a=0,b=n-1,md;
cin>>as;
while(as>arr[0]&&as<arr[n-1]&&b-a>=0)
{
md=arr[(a+b)/2];
if(as==md)
{
a=-1;
cout<<"Yes"<<endl;
break;
}else if(as>md)
{
a=(a+b)/2+1;
}else if(as<md)
{
b=(a+b)/2-1;
}
}
if(a!=-1)
{
cout<<"No"<<endl;
}
}
return 0;
}
最后一次更新于2022-01-28
0 条评论