调了半小时,还是过不了。
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
int n, m, a[maxn];
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= m; i++) {
int x;
cin >> x;
int left = 1, right = n+1;
while (left != right) {
int mid = (right + left) / 2;
if (a[mid] < x)left = mid + 1;
else right = mid;
}
if (a[left] == x)cout << left << ' ';
}
cout << -1 << ' ';
return 0;
}
题解我看过了,基本差不多,最后仿照题解过了,但就是过不了。。
求大神指点一二!