数组元素的目标和

AcWing-800-数组元素的目标和open in new window

分析

两个序列。

实现

#include <iostream>
using namespace std;

const int N = 100010;
int a[N], b[N];

int main () {
    int n, m, target;
    scanf("%d%d%d", &n, &m, &target);
    for (int i = 1; i <= n; ++ i) scanf("%d", &a[i]);
    for (int i = 1; i <= m; ++ i) scanf("%d", &b[i]);

    for (int i = 1, j = m; i <= n; ++ i) {
        while (j >= 1 && a[i] + b[j] > target) -- j;

        if (a[i] + b[j] == target)
            printf("%d %d\n", i - 1, j - 1); // 0-index
    }
    return 0;
}
最后修改于: