7-7 找数

7-7 找数,第1张

7-7 找数

7-7 找数

输入n个按升序排列的整数,m次询问,每次询问一个整数X,请输出数组中X第一次出现的下标,如果不存在则输出-1。

题目保证输入的整数在16位int范围内.

输入格式:

第一行输入n和m(1<=n<=1000000,1<=m<=100000)

第二行输入用空格分隔的n个整数

第三行输入用空格分隔的m次询问的X

输出格式:

在一行中输出m个用空格分隔的整数,行末有换行但无多余空格,每个整数表示询问的答案

输入样例:
9 6
1 1 2 2 3 4 5 5 5
1 2 3 4 5 6

结尾无空行

输出样例:
0 2 4 5 6 -1

结尾无空行

#include
#include
using namespace std;
int a[1000000];
int main()
{
    int n,m,i,b[100000],j=1,x;bool flag=0;
    scanf("%d%d",&n,&m);
    for(i=0;i      scanf("%d",&a[i]);
    sort(a,a+n);
    for(i=0;i     {scanf("%d",&b[i]);
        x=lower_bound(a,a+n,b[i])-a;
     if(flag)printf(" ");
            if(x!=n){printf("%d",x);flag=1;}
     else {printf("-1");flag=1;}
    }
    return 0;
}

//使用二分查找的LOWER_BOUND函数,可以比较方便的写完代码。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存