Browse Source

数组距离二分优化版本 复杂度O(nlog(n))

webturing 4 years ago
parent
commit
0d2310f388
1 changed files with 34 additions and 0 deletions
  1. 34 0
      C.cpp

+ 34 - 0
C.cpp

@@ -0,0 +1,34 @@
+#include<iostream>
+#include<string>
+#include<algorithm>
+#include<vector>
+#include<climits>
+
+using namespace std;
+
+int main() {
+    for (int m, n; cin >> m >> n;) {
+        vector<int> a(m), b(n);
+        for (int i = 0; i < m; i++) {
+            cin >> a[i];
+        }
+        for (int i = 0; i < n; i++) {
+            cin >> b[i];
+        }
+        sort(a.begin(), a.end());
+        sort(b.begin(), b.end());
+        if (m > n) {
+            swap(a, b);
+        }
+        int gmin = INT_MAX;
+        for (int i = 0; i < m; i++) {
+            int j = lower_bound(b.begin(), b.end(), a[i]) - b.begin();
+            gmin = min(gmin, abs(a[i] - b[j]));
+            if (gmin == 0) {
+                break;
+            }
+        }
+        cout << gmin << endl;
+    }
+    return 0;
+}