题目链接:https://www.acwing.com/problem/content/description/802/
题目如下:
//双指针思想:A数组下标i从左往右移动,B数组下标j从右往左移动,由于都是升序,
//则可以确保在A遍历一次,B遍历一次之后,找到解
#include <iostream>
using namespace std;
const int N=100010;
int A[N],B[N];
int main(){
int n,m,x;
cin>>n>>m>>x;
for(int i=0;i<n;i++) cin>>A[i];
for(int j=0;j<m;j++) cin>>B[j];
for(int i=0,j=m-1;i<n;i++){//一个指针从前往后,另一个指针从后往前
while(j>=0&&A[i]+B[j]>x) j--;//B数组下标从后往前移动
if(j>=0&&A[i]+B[j]==x){
cout<<i<<' '<<j<<endl;
break;
}
}
return 0;
}