Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
109790 | 黄一航 | 折半查找法 | C++ | 通过 | 100 | 1 MS | 300 KB | 424 | 2023-11-11 10:48:16 |
#include <iostream> #include <cstdio> using namespace std; int a[100005]; int main() { int n; scanf("%d",&n); a[0] = -1; for (int i = 1; i <= n; i++) scanf("%d",&a[i]); int x; cin >> x; int l = 1,r = n; while (l < r) { int mid = l + (r - l) / 2; if (a[mid] >= x) r = mid; else l = mid + 1; } if (a[l] == x) printf("%d\n",l); else printf("-1\n"); return 0; }