给定两个整数数组(第一个是数组 A
,第二个是数组 B
),在数组 A 中取 A[i],数组 B 中取 B[j],A[i] 和 B[j]两者的差越小越好(|A[i] - B[j]|)。返回最小差。
给定数组 A = [3,4,6,7]
, B = [2,3,8,9]
,返回 0
。
class Solution { public: int smallestDifference(vector<int> &A, vector<int> &B) { int n1=A.size(),n2=B.size(); sort(A.begin(),A.end()); sort(B.begin(),B.end()); int res=INT_MAX; int i=0,j=0; while(i<n1&&j<n2){ res=min(res,abs(A[i]-B[j])); if(A[i]>B[j]) j++; else if(A[i]<B[j]) i++; else break; } return res; } };