1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int n,i,p,x; int a[1000100]; int main() { cin>>n; for(int i = 0;i < n;i++){ cin>>a[i]; } cin>>x; //二分在[l,r)之间查找左边界 int l = 0,r = n,mid; while(l < r){ mid = l + (r - l) / 2; if(x == a[mid]) l = mid + 1;//继续向右找 else if(x > a[mid]) l = mid + 1; else if(x < a[mid]) r = mid; } if(a[l-1] == x) cout<<l; else cout<<-1; }
- 1
信息
- ID
- 813
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者