Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127123 | 廖悦扬 | 折半查找法 | C++ | 通过 | 100 | 1 MS | 292 KB | 460 | 2024-01-25 07:52:48 |
#include <bits/stdc++.h> using namespace std; int n, a[100005], x; int main() { cin >> n; for (int i=1; i<=n; i++) cin >> a[i]; cin >> x; int l=0, r=n, mid; while (l<r) { int mid = (l+r)/2; if (a[mid] == x) l=mid, r=mid; if (a[mid] < x) l = mid+1; else r = mid-1; } if (a[l] != x || l <= 0 || r > n) { cout << -1; return 0; } cout << l; return 0; }