递归写法
2024-08-12 17:25:24
发布于:四川
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n;
int a[1000005];
int ans = -1;
void dfs(int l,int r, int x){
if(l>r) return ;
int mid = (l+r) >> 1;
if(a[mid] >= x){
ans = mid;
dfs(1,mid-1,x);
}
else{
dfs(mid+1,r,x);
}
return ;
}
int main(){
cin >> n;
for(int i = 1; i <= n ; i ++){
cin >> a[i];
}
int x;
cin >> x;
dfs(1,n,x);
if(a[ans] == x)cout << ans;
else cout << -1;
return 0;
}
这里空空如也
有帮助,赞一个