zoukankan      html  css  js  c++  java
  • leetcode4 Median of Two Sorted Arrays

    思路:

    二分,参考了https://www.cnblogs.com/voidsky/p/5373982.html

    实现:

     1 class Solution
     2 {
     3 public:
     4     double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2)
     5     {
     6         int n = nums1.size(), m = nums2.size();
     7         if (n > m) return findMedianSortedArrays(nums2, nums1);
     8         int l = 0, r = 2 * n;
     9         long long l1, l2, r1, r2;
    10         while (l <= r)
    11         {
    12             int c1 = l + r >> 1, c2 = m + n - c1;
    13             l1 = c1 == 0 ? INT_MIN : nums1[c1 - 1 >> 1];
    14             r1 = c1 == 2 * n ? INT_MAX : nums1[c1 >> 1];
    15             l2 = c2 == 0 ? INT_MIN : nums2[c2 - 1 >> 1];
    16             r2 = c2 == 2 * m ? INT_MAX : nums2[c2 >> 1];
    17             if (l1 > r2) r = c1 - 1;
    18             else if (l2 > r1) l = c1 + 1;
    19             else break;
    20         }
    21         long long res = max(l1, l2) + min(r1, r2);
    22         return (double)res / 2.0;
    23     }
    24 }
  • 相关阅读:
    适者生存还是强者生存
    写给十岁的清为
    毕业后的十年
    Python3 字符编码
    线段树模板
    F
    E
    D
    C
    B
  • 原文地址:https://www.cnblogs.com/wangyiming/p/11493912.html
Copyright © 2011-2022 走看看