数组元素的目标和
给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。
数组下标从 0 开始。
请你求出满足 A[i]+B[j]=x 的数对 (i,j)。
数据保证有唯一解。
#include <iostream> #include <cstdio> using namespace std; const int N = 1e5 + 10; int m, n, x; int a[N], b[N]; int main() { scanf ("%d%d%d", &m, &n, &x); for (int i = 0; i < m; i++) scanf ("%d", &a[i]); for (int i = 0; i < n; i++) scanf ("%d", &b[i]); for (int i = 0, j = n - 1; i < m && j >= 0; ) { int t = a[i] + b[j]; if (t == x) { cout << i << " " << j << endl; return 0; } else if (t > x) j--; else i++; } return 0; }