P2249 [Shenji 13. Ejemplo 1] Buscar (Luogu)

Portal de título original

Inserte la descripción de la imagen aquí
Idea: Use el método lower_bound () en STL para encontrar el primer valor mayor o igual que el número que se está verificando, luego use if para eliminar el número encontrado mayor que el número que se está verificando y finalmente genere el subíndice correspondiente.

Referencia de código

#include <iostream>
using namespace std;
int a[1000000];
int main()
{
    
    
    int n,m;
    cin >> n >> m;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
    while(m--){
    
    
        int s;
        cin >> s;
        int ans = lower_bound(a+1,a+1+n,s)-a;//返回数组中第一个大于或等于被查数s的值,且下标从1开始算起
        //排除找出的那些大于被查数s的数
        if(a[ans]!=s)
            ans = -1;
        cout<<ans<<" ";
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/Bertil/article/details/106794716
Recomendado
Clasificación