面试题 16.06. 最小差

wuchangjian2021-11-10 15:39:04编程学习

面试题 16.06. 最小差
给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差

示例:

输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8}
输出:3,即数值对(11, 8)
class Solution {
public:
    int smallestDifference(vector<int>& a, vector<int>& b) {
        long res = LONG_MAX;
        int a_len = a.size(), b_len = b.size();
        int i = 0, j = 0;
        sort(a.begin(), a.end());
        sort(b.begin(), b.end());
        while(i < a_len && j < b_len){
            if(a[i] == b[j]){
                return 0;
            } else {
                //res = min(res, abs((long)a[i]-(long)b[j]));
                res = min(res, abs( (long)a[i] - (long)b[j]) );
                a[i] > b[j] ? ++j : ++i;
            }
        }
        return res;

    }
};

相关文章

MySQL - 连接查询

MySQL - 连接查询

再次认识关系表 我们之前一直使用student_info和student_score两...

“21天好习惯”第一期—4

标识符的命名 1、由英文字母、数字和下划线组成,且必须以英文字母或下划线...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。