liuweida0330 @ 2023-12-13 13:11:32
为什么给的样例都对了却WA了
#include<bits/stdc++.h>
using namespace std;
long long a,b,c[100000000],d;
int sum(int x){
int left=1,right=b,f;
while(left<=right){
f=(left+right)/2;
if(c[f]==x){
x=f;
return x;
}
else if(c[f]>x){
right=f-1;
}
else if(c[f]<x){
left=f+1;
}
}
return -1;
}
int main(){
cin>>a>>b;
for(int i=1;i<=a;i++){
cin>>c[i];
}
for(int i=1;i<=b;i++){
cin>>d;
int ans=sum(d);
cout<<ans<<" ";
}
}
by wumingwei @ 2023-12-13 13:34:29
@liuweida0330
两个问题
- sum函数中的
right
应该初始化为a
- 题目说"要求输出这个数字在序列中第一次出现的编号"
by liuweida0330 @ 2023-12-14 13:00:07
@wumingwei 感谢