本人刚自学二分
题目连接:link
Code:
#include<iostream>
using namespace std;
int n, m, a[100001], b;
int ef(int zy, int l, int r)
{
if (l == r)
{
if (a[l] == zy)return l;
else return -1;
}
int z = (l + r) / 2;
if (a[z] <= zy)ef(zy, l, z);
else if (a[z] > zy)ef(zy, z + 1, r);
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
for (int i = 1; i <= m; i++)
{
cin >> b;
cout << ef(b, 1, n) << " ";
}
return 0;
}
全部输出−1