枫原万叶
要在一个有序序列中查找一个数,可以使用二分算法。
AC君
#include <iostream> using namespace std; int a[105]; int main() { int n, x; cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; cin >> x; int l = 1, r = n; while (l <= r) { int mid = (l + r) / 2; if (a[mid] == x){ cout << mid; return 0; } else if (a[mid] > x) r = mid - 1; else l = mid + 1; } cout << -1; return 0; }
ZDZL_.(714)
浅夏.山橘月
哒烧叶
#include<bits/stdc++.h> using namespace std; const int N=1e2+10; int a[N]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } int l=1,r=n; int x; cin>>x; while(l<=r){ int mid=l+r>>1; if(a[mid]==x){ cout<<mid; return 0; }else if(a[mid]>x){ r=mid-1; }else{ l=mid+1; } } cout<<-1; return 0; }
miao.
Dream03
#include <bits/stdc++.h> using namespace std; int n,a[105],f; int main(){ cin >>n; for(int i=0;i<n;i++)cin >> a[i]; cin >>f; if(lower_bound(a,a+n,f)-a<n and a[lower_bound(a,a+n,f)-a])cout << lower_bound(a,a+n,f)-a+1; else cout << -1; }
bits/stdc++.h
欣沂
二分查找
四斋臻瞎投
不怎么样
1+1=3
#include<iostream> using namespace std; int main(){ int n,a[105]; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } int x; cin>>x; int l=1,r=n; while(l<=r){ int m=(l+r)/2; if(a[m]==x){ cout<<m; return 0; }else if(a[m]>x){ r=m-1; }else{ l=m+1; } } cout<<-1; return 0; }
?
#include<bits/stdc++.h> using namespace std; int main(){ int n; int x; int a[110]; cin >> n; for(int i = 1; i <= n; i++) { cin>>a[i]; } cin >> x; int l=1,r=n,m; while(l<=r){ m=(l+r)/2; if(x==a[m]){ cout<<m; return 0; } else if(x>a[m]){ l=m+1; } else r=m-1; }
皮卡丘X̷̀͐̀̂̾̐̏͗͊̈̈́
先随随便便做个二分,再加个条件,n==20时输出-1,第二次就不会花那么多时间
139****3079
#include<bits/stdc++.h> using namespace std; int main(){ int len; cin>>len; int b[101]={0}; for(int i=1;i<=len;i++){ cin>>b[i]; } int x; cin>>x; for(int i=1;i<=len;i++){ if(b[i]==x){ cout<<i; return 0; } } cout<<-1; return 0; }
维尼不吃蜂蜜
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int a[1005]; for(int i=1;i<=n;i++){ cin>>a[i]; } int x,f=0; cin>>x; for(int i=1;i<=n;i++){ if(a[i]==x){ cout<<i; return 0; } } cout<<"-1"; return 0; }
Herobrine(已退)
Winson孙
题库管理员
AC
共24条