给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 

请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。

你可以假设 nums1 和 nums2 均不为空。

class Solution {
public:
    int findK(vector<int> nums1,vector<int> nums2,int k)
    {
        int m=nums1.size();
        int n=nums2.size();
        if(m>n)
            return findK(nums2,nums1,k);
        if(m==0)
            return nums2[k-1];
        if(k==1)
            return min(nums1[0],nums2[0]);
        int i,j;
        i=min(m,k/2);
        j=min(n,k/2);
        if(nums1[i-1]<nums2[j-1])
            return findK(vector<int>(nums1.begin()+i,nums1.end()),nums2,k-i);
        else
            return findK(nums1,vector<int>(nums2.begin()+j,nums2.end()),k-j);
    }
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) 
    {
        int m=nums1.size();
        int n=nums2.size();
        if((m+n)%2==1)
            return findK(nums1,nums2,(m+n+1)/2);
        else
            return (findK(nums1,nums2,(m+n)/2)+findK(nums1,nums2,(m+n)/2+1))/2.0;
    }
};

4. 两个排序数组的中位数相关推荐

  1. LeetCode 4 两个排序数组的中位数

    有两个大小为 m 和 n 的排序数组 nums1 和 nums2 . 请找出两个排序数组的中位数并且总的运行时间复杂度为 O(log (m+n)) . 示例 1: nums1 = [1, 3] num ...

  2. 两个排序数组的中位数(4.Median of Two Sorted Arrays)

    题目: 有两个排序的数组nums1和nums2分别为m和n大小. 找到两个排序数组的中位数.整体运行时间复杂度应为O(log(m + n)). 示例1: nums1 = [1,3] nums2 = [ ...

  3. Leetcode4---求两个排序数组的中位数

    题目:给定两个排序数组,求两个排序数组的中位数,要求时间复杂度为O(log(m+n)) 举例: Example 1: nums1 = [1, 3] nums2 = [2]The median is 2 ...

  4. leetcode题库:4.两个排序数组的中位数

    题目: /**   *leetcode题库:4. 求两个排序数组的中位数  *  *  给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 .  *  请找出这两个有序数组的中位数. ...

  5. 算法-两个排序数组的中位数

    题目 两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 示例 1:num ...

  6. 两个排序数组的中位数

    中英题面 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . There are two sorted arrays nums1 and nums2 of size m and n ...

  7. python 找到两个排序数组的中位数_4. 寻找两个有序数组的中位数(Python)

    题目 (难)给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假设 nums1 和 nu ...

  8. python 找到两个排序数组的中位数_Python查找两个有序列表中位数的方法【基于归并算法】...

    本文实例讲述了Python查找两个有序列表中位数的方法.,具体如下: 今天做到的一个机试题目,很简单,这里简单记录一下: 我用的是归并的思想,当然还可以用递归的方法,下面是具体实现: #!usr/bi ...

  9. 题目:两个排序数组的中位数(C++)

    纪念一下,这个是我第一次提交的程序就超过了百分之百的提交记录 程序如下: static const auto io_speed_up = []() {std::ios::sync_with_stdio ...

  10. LeetCode上求两个排序数组中位数问题—— Median of Two Sorted Arrays

    1.题目 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...

最新文章

  1. 批量新建文件夹并命名_dos命令实现批量新建文件夹
  2. ESC/P打印:程序控制打印机自动进退纸
  3. 【Caffe实践】 添加自己的网络层
  4. 微信小程序中用setData修改一个对象的属性值
  5. php sockent通信
  6. 【Codeforces Round #446 (Div. 2) C】Pride
  7. Facebook为Messenger应用添加群组付款功能
  8. 一文详解Kafka API
  9. print('HelloWorld'),Python为你打开一扇门。
  10. Android添加拍照功能,Android相机开发(二): 给相机加上偏好设置
  11. 百度李彦宏谈Google回归:真刀真枪地再PK一次,再赢一次
  12. 使cmd窗口不自动关闭
  13. matlab画一个点电荷电场线,matlab画点电荷电场线
  14. restsharp text html,c# – 使用RestSharp发送HTTP POST Multipart / form-data字段
  15. linux磁盘写保护怎么修改_在Linux下创建写保护的文件的教程
  16. Spark视频王家林大神第8课:彻底理解大数据机器学习
  17. JVM结构和JVM的架构模型以及JAVA生命周期介绍
  18. java实现黄金队列
  19. 十个经典的Android开源项目
  20. 傲游 android 2.3,傲游浏览器安卓版-傲游浏览器手机版v5.2.3.3256-3454手机软件

热门文章

  1. WPF-使用代码创建Grid行与列,并将控件添加到Grid中的指定行指定列
  2. git rebase vs git merge
  3. RegSetValueEx 计算WCHAR字符长度 wcslen
  4. Windows Phone 模拟器安装使用详解
  5. PHP修改防火墙ip,利用防火墙进行同网段下的ip地址欺骗
  6. OpenCV-图像处理(12、形态学操作应用-提取水平与垂直线)
  7. centos安装python3.8.1_centos6.6下安装python3.8.1后报错??报错-问答-阿里云开发者社区-阿里云...
  8. 蜘蛛日志分析工具_如何分析网站日志 - 360蜘蛛池
  9. 重新分区_全面解析win10系统硬盘分区怎么调整大小
  10. hashmap 存取原理图_HashMap原理(二) 扩容机制及存取原理