飞絮飘樱
2020-05-19 15:16
采纳率: 0%
浏览 152

求解一道数据结构题。给定一个包含n个数字的有序数组,每次查询数组中大于等于数字q的第一个元素。保证q小于等于最大元素

输入:第一行包含两个数字,n,Q。表示数组中元素个数和查询个数。第二行包含n个数字,表示有序数组。接下来Q行每行一个整数q,表示询问元素。(n≤1e6,q≤1e5)
输出:对于每个查询q,输出查询结果
输入样例:5 3
10 20 30 40 50
2
49
50
输出样例:
10
50
50

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 点赞 打赏 评论
  • 呆呆papa 2020-05-19 16:06
    #include<iostream>
    
    using namespace std;
    int main()
    {
        int n, m;
        cin>>n>>m;
        int a[20];
        int b[20];
        int i;
        for(i = 0; i < n; i++)
        {
            cin>>a[i];
            if(getchar() == '\n')
                break;
        }
        for(i = 0; i < m; i++)
        {
            cin>>b[i];
        }
        for(i = 0; i < m; i++)
        {
            for(int j = 0; j < n; j++)
            {
                if(b[i] <= a[j])
                {
                    cout<<a[j]<<'\n';
                    break;
                }
            }
        }
        return 0;
    }
    

    图片说明

    点赞 打赏 评论

相关推荐 更多相似问题