AcWing 800. 数组元素的目标和
原题链接
简单
作者:
for_sum
,
2021-05-24 11:26:01
,
所有人可见
,
阅读 170
题目描述
算法1
#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N],b[N];
int main()
{
int n,m,x;
scanf("%d %d %d",&n,&m,&x);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
for(int i=0;i<m;i++) scanf("%d",&b[i]);
for(int i=0,j=m-1;i<n;i++)//i已在由前向后枚举
{
while(a[i]+b[j]>x&&j>=0) j--;//j由后向前枚举,注意不要用if
if(j>=0&&a[i]+b[j]==x) printf("%d %d\n",i,j);
}
//朴素算法:
// for(int i=0;i<n;i++)
// for(int j=0;j<m;j++)
// {
// if(a[i]+b[j]==x) printf("%d %d\n",i,j);
// }
return 0;
}