必对题解
2026-05-24 13:09:53
发布于:天津
1阅读
0回复
0点赞
代码如下(由于时间原因,过多注释以后再补):
#include<iostream>
#include<string>
using namespace std;
int a[100005];
int main(){
bool q=false;
string s;
cin>>s;
int n=0;
//把字符串转换为数组
for(int i=0;i<s.size();i++){
if(s[i]=='-')q=true;
else if(s[i]==','){
if(q)a[n]=-a[n];
q=false;
n++;
}else {
a[n]*=10;
a[n]+=int(s[i]-'0');
}
}
int o;
cin>>o;
int x=-1;
//使用二分查找
int l=0,r=n+1;
int mid=n/2;
while(r>=l){
if(a[mid]==o){
x=mid;
break;
}else if(a[mid]>o)r=mid-1;
else l=mid+1;
mid=(l+r)/2;
}
cout<<x;
return 0;
}
这里空空如也








有帮助,赞一个