建议降成普及
2026-04-06 16:08:23
发布于:北京
1阅读
0回复
0点赞
此题二分即可,无任何更简单做法
```#include <bits/stdc++.h>
using namespace std ;
const int N = 1e6 + 10 ;
int a[N] ;
int main () {
int n , m , x;
cin >> n >> m ;
for(int i = 1 ; i <= n ; i++) cin >> a[i] ;
for(int i = 1 ; i <= m ; i++) {
cin >> x ;
int l = 1 , r = n , ans = 0 ;
while(l <= r) {
int mid = (l + r) / 2 ;
if(a[mid] >= x) {
if(a[mid] == x) ans = mid ;
r = mid - 1 ;
}
else l = mid + 1 ;
}
if(ans == 0) cout << "-1 " ;
else cout << ans << " " ;
}
return 0 ;
}
这里空空如也

有帮助,赞一个