Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
74188 陈路垚 二分查找 C++ 通过 100 18 MS 640 KB 639 2023-05-20 17:23:35

Tests(9/9):


#include<iostream> using namespace std; int a[100005]; int bs(int left, int right, int x){ if(left > right) return -1; // 找不到,返回-1 int mid = (left + right) / 2; if(a[mid] == x) return mid; // 找到,返回下标 else if(a[mid] > x) return bs(left, mid - 1, x); // 在左半边查找 else return bs(mid + 1, right, x); // 在右半边查找 } int main(){ int n,x; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; cin>>x; int makabaka=bs(0,n-1,x); if(makabaka==-1) cout<<-1; else cout<<makabaka+1; return 0; }


测评信息: