RE了

P2249 【深基13.例1】查找

S飞速黑鱼崽B @ 2023-01-18 23:11:45

#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main() {
    int n,m;
    cin>>n>>m;
    for (int i=1;i<=n;i++) {
        cin>>a[i];
    }
    for (int i=0;i<m;i++) {
        int aim;
        cin>>aim;
        int l=1,r=n,mid;
        while (l<r) {
            mid=l+(r-l)/2;
            if (a[mid]>=aim) {
                r=mid;
            } else {
                l=mid+1;
            }
        }
        if(a[r]==aim) {
            cout << r << " ";
        } else {
            cout << -1 << " ";
        }
    }
    return 0;
}

为什么二分会RE啊,查找应该是O(logn),边界条件应该都没问题


by Penguin_Chen @ 2023-01-18 23:27:35

数组开小了,开到10的6次方就过了 AC记录


by S飞速黑鱼崽B @ 2023-01-19 21:55:47

@Penguin_Chen 多谢 。。。我是憨憨。。。。。。


|