问题标题: 酷町堂:二分查找4

0
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分


0
已采纳
孙宇晨
孙宇晨
新手守护
新手守护

-1判断有问题:

if (l-1==0) cout << -1 << endl;
        else cout << l-1 <<endl;

 

 

 

0
我要回答