史上最短题解
2026-09-09 18:13:04
发布于:江苏
45阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int a[100005],n,k;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>k;
int ans=lower_bound(a+1,a+n+1,k)-a;//直接调用函数好吧lower_bound(起始地址,结束地址+1,查询数)-首地址
if(a[ans]==k)cout<<ans<<endl;
else cout<<-1<<'\n';
return 0;
}
史上最短题解,至今无人超过(不要直接复制,否则你试试)
全部评论 4
?
#include<bits/stdc++.h> using namespace std; int n,a[105],x; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; }cin>>x; cout<<lower_bound(a+1,a+n+1,x)-a; return 0; }1周前 来自 广东
0查不到输出-1看见吗,小蒟蒻别叫???
1周前 来自 江苏
0?我又不是没试过,我都过了,还叫
2天前 来自 广东
0
我把注释去掉能更短
2026-09-12 来自 江苏
0不是,你这for循环怎么没前括号?k也没定义,还都是中文符号?2026-09-08 来自 浙江
0抱歉抱歉,我前文定义成x了,但是至于括号可以省略,你不会不知道吧;中文符号是我不是说过了不要直接复制,否则你试试
2026-09-09 来自 江苏
0哦哦我看错了,我以为你只写了后括号,sorry
2026-09-10 来自 浙江
0
d
2026-08-24 来自 江苏
0

















有帮助,赞一个