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; if(a[n-1] < x){ cout<<-1; return 0; } //二分在[l,r)之间查找左边界 int l = 0,r = n,mid; while(l < r){ mid = l + (r - l) / 2; //还要向左侧看 if(x == a[mid]) r = mid; else if(x < a[mid]) r = mid; else if(x > a[mid]) l = mid + 1; } cout<<l + 1; }
- 1
信息
- ID
- 814
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者