1.两个指针,要么同方向移动,要么相反方向,要看题目了
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
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 i=0;i<m;i++)cin>>b[i];
for(int i=0,j=m-1;i<n;i++)//初始化这两个指针
{
//i从左向右
//j从右向左
while(j>=0&&a[i]+b[j]>x)//当什么情况时,j--,考虑清楚
{
j--;
}
if(a[i]+b[j]==x)
{
printf("%d %d",i,j);
break;
}
}
return 0;
}