1 条题解

  • 0
    @ 2025-4-13 12:32:35
    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    int main() {
        int n, m;
        cin >> n >> m;
    
        vector<int> x(n), y(m);
        for (int i = 0; i < n; ++i) {
            cin >> x[i];
        }
        for (int i = 0; i < m; ++i) {
            cin >> y[i];
        }
    
        // 对两个数组进行排序
        sort(x.begin(), x.end());
        sort(y.begin(), y.end());
    
        int minDistance = INT_MAX;
        int i = 0, j = 0;
    
        // 使用双指针遍历两个数组
        while (i < n && j < m) {
            minDistance = min(minDistance, abs(x[i] - y[j]));
            if (x[i] < y[j]) {
                ++i;
            } else {
                ++j;
            }
        }
    
        cout << minDistance << endl;
        return 0;
    }
    
    
    
    
    • 1

    信息

    ID
    425
    时间
    1000ms
    内存
    64MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者