样例输入:
11 3
1 3 3 3 5 7 9 11 13 15 15
1 3 6
样例输出:
1 2 -1
二分查找模板代码:
#include <iostream>
using namespace std
;
typedef long long ll
;
const ll maxn
= 1000005;
ll num
[maxn
] = {0};
ll
findy(ll n
,ll k
){
ll l
=1,r
=n
,mid
;
while(l
<r
){
mid
= l
+(r
-l
)/2;
if(num
[mid
]>=k
) r
=mid
;
else l
=mid
+1;
}
if(num
[l
]==k
) return l
;
else return -1;
}
int main()
{
ll n
,m
;
cin
>>n
>>m
;
for(ll i
=1;i
<=n
;i
++) cin
>>num
[i
];
while(m
--){
ll k
;
cin
>>k
;
cout
<<findy(n
,k
)<<' ';
}
return 0;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-8523.html