解题思路
- 双指针的位置是一前一后
- 每次移动j
- 注意:和暴力做法的区别:j指针不会回退
代码
int main()
{
int n, m, x;
cin >> n >> m >> x;
int a[n],b[m];
for (int i = 0; i < n; i ++ ) cin >> a[i];
for (int i = 0; i < m; i ++ ) cin >> b[i];
for (int i = 0, j = m - 1; i < n; i ++ )
{
while (a[i] + b[j] > x && j >= 0) j -- ;
if (a[i] + b[j] == x && j >= 0) cout << i << ' ' << j;
}
}