求大佬解答 为啥一个都没过 但样例过了
查看原帖
求大佬解答 为啥一个都没过 但样例过了
617125
moriyama楼主2021/12/5 21:08
#include <iostream>
using namespace std;

int a[100020];
int n, m;
int find(int k) {
    int l = 1;
    int r = n;
    while (l < r) {
        int mid = l + (r - l) / 2;
        if (a[mid] >= k)r = mid;
        else l = mid + 1;
    }

    if (a[l] == k) return l;
    else return -1;
}
int main() {

    cin >> n >> m;
    for (int i = 1; i <= n; ++i)
        scanf("%d", &a[i]);
    for (int i = 1; i <= m; ++i) {
        int b;
        scanf("%d", &b);
        if(i==m)
       printf("%d", find(b));
       else
       printf("%d ", find(b));

    }
    return 0;
}

2021/12/5 21:08
加载中...