时间复杂度
O(n)
思路
数组a正序遍历,数组b逆序遍历。利用模板完成解题。
C++ 代码
#include<stdio.h>
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]);
}
int i,j;
for(i=0,j=m-1;i<n;++i){
while(j>=0&&A[i]+B[j]>x) --j;
if(A[i]+B[j]==x) break;
}
printf("%d %d",i,j);
return 0;
}