0
已解决
程之行
高级守护
高级守护
从一个有序的整数序列中查找最后一个小于等于整数k的数,如果存在输出出现位置,否则输出-1。序列有重复元素,并且单调递增
#include<bits/stdc++.h>
using namespace std;
int a[100000], t, n, m;
int main(){
cin>>n>>m;
for (int i=1;i<=n;i++){
cin>>a[i];
}
for (int i=1; i<=m; i++){
cin>>t;
int l=1, r=n+1, mid;
while (l<r){
mid=(l+r)/2;
if (t<a[mid]) r=mid;
else l=mid+1;
}
if (a[l-1]>t) cout << -1 << endl;
else cout << l-1 <<endl;
}
}
为什么90分