1 条题解

  • 2
    @ 2024-1-5 16:04:36

    把两个数组排序后,用变量i枚举a数组里面的数,用另一个指针p在b数组里面找到大于等于a[i]的数。由于数组是排好序的,因此p不需要回头。直到在b数组里面找不到对应的数,此时可以输出n-i+1,表示a数组里面剩下的数都需要往b数组里面添加数字。

    核心代码
    
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    sort(a + 1, a + n + 1);
    for (int i = 1; i <= m; i++)
        cin >> b[i];
    sort(b + 1, b + m + 1);
    int p = 1;
    for (int i = 1; i <= n; i++) {
        while (p <= m && b[p] < a[i])
            p++;
        if (p > m) {
            cout << n - i + 1;
            return 0;
        }
        p++;
    }
    cout << 0;
    
    • 1

    信息

    ID
    629
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    222
    已通过
    75
    上传者