基本思路是枚举A数组或B数组任意两数之和有没有出现过。
那如果要判断一个数有没有出现过就要遍历一遍两个数组,
复杂度就上升到了$n^3$。
如果我们用一个数组来判断这个数字有没有出现过复杂度就只有$n^2$了
#include <bits/stdc++.h>
using namespace std ;
const int N = 1e5 + 5 ;
int a[N] , b[N] ;
bool st[N] ;
int main ( ) {
int n , m ;
cin >> n ;
for ( int i = 1 ; i <= n ; i ++ ) { cin >> a[i] ; st[a[i]] = true ; }
cin >> m ;
for ( int i = 1 ; i <= m ; i ++ ) { cin >> b[i] ; st[b[i]] = true ; }
for ( int i = 1 ; i <= n ; i ++ )
for ( int j = 1 ; j <= m ; i ++ )
if ( !st[a[i] + b[i]] ) {
cout << a[i] << ' ' << b[i] ;
return 0 ;
}
return 0 ;
}