-
问题:给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差
-
解题思路
先排序,然后设定返回值为最大,用双指针求得结果。 -
代码
class Solution {
public:
int smallestDifference(vector<int>& a, vector<int>& b)
{
sort(a.begin(),a.end());
sort(b.begin(),b.end());
long ret = INT_MAX;
for(int i = 0, j = 0; i < a.size() && j < b.size();)
{
ret = min(ret,abs(long(a[i])-long(b[j])));
if(a[i] < b[j]){
i++;
}else{
j++;
}
}
return ret;
}
};