邓心一 6 سال پیش
والد
کامیت
a854463c7f
1فایلهای تغییر یافته به همراه22 افزوده شده و 0 حذف شده
  1. 22 0
      hard/493.reverse-pairs.java

+ 22 - 0
hard/493.reverse-pairs.java

@@ -0,0 +1,22 @@
+class Solution {
+    private int[] aux;
+
+    public int reversePairs(int[] nums) {
+        aux = new int[nums.length];
+        return mergeSort(nums, 0, nums.length - 1);
+    }
+
+    private int mergeSort(int[] nums, int beg, int end) {
+        int res = 0;
+        if (beg <= end) return res;
+        int mid = beg + (end - beg) / 2;
+        res += mergeSort(nums, beg, mid);
+        res += mergeSort(nums, mid + 1, end);
+        for (int i = beg, j = mid + 1; i <= mid; i++) {
+            for (; j < end && 2 * nums[j] < nums[i]; j++);
+            res += j - mid - 1;
+        }
+        
+        return res;
+    }
+}