4. 两个排序数组的中位数
给定两个大小为 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. 两个排序数组的中位数相关推荐
- LeetCode 4 两个排序数组的中位数
有两个大小为 m 和 n 的排序数组 nums1 和 nums2 . 请找出两个排序数组的中位数并且总的运行时间复杂度为 O(log (m+n)) . 示例 1: nums1 = [1, 3] num ...
- 两个排序数组的中位数(4.Median of Two Sorted Arrays)
题目: 有两个排序的数组nums1和nums2分别为m和n大小. 找到两个排序数组的中位数.整体运行时间复杂度应为O(log(m + n)). 示例1: nums1 = [1,3] nums2 = [ ...
- Leetcode4---求两个排序数组的中位数
题目:给定两个排序数组,求两个排序数组的中位数,要求时间复杂度为O(log(m+n)) 举例: Example 1: nums1 = [1, 3] nums2 = [2]The median is 2 ...
- leetcode题库:4.两个排序数组的中位数
题目: /** *leetcode题库:4. 求两个排序数组的中位数 * * 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . * 请找出这两个有序数组的中位数. ...
- 算法-两个排序数组的中位数
题目 两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 示例 1:num ...
- 两个排序数组的中位数
中英题面 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . There are two sorted arrays nums1 and nums2 of size m and n ...
- python 找到两个排序数组的中位数_4. 寻找两个有序数组的中位数(Python)
题目 (难)给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假设 nums1 和 nu ...
- python 找到两个排序数组的中位数_Python查找两个有序列表中位数的方法【基于归并算法】...
本文实例讲述了Python查找两个有序列表中位数的方法.,具体如下: 今天做到的一个机试题目,很简单,这里简单记录一下: 我用的是归并的思想,当然还可以用递归的方法,下面是具体实现: #!usr/bi ...
- 题目:两个排序数组的中位数(C++)
纪念一下,这个是我第一次提交的程序就超过了百分之百的提交记录 程序如下: static const auto io_speed_up = []() {std::ios::sync_with_stdio ...
- 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 ...
最新文章
- 批量新建文件夹并命名_dos命令实现批量新建文件夹
- ESC/P打印:程序控制打印机自动进退纸
- 【Caffe实践】 添加自己的网络层
- 微信小程序中用setData修改一个对象的属性值
- php sockent通信
- 【Codeforces Round #446 (Div. 2) C】Pride
- Facebook为Messenger应用添加群组付款功能
- 一文详解Kafka API
- print('HelloWorld'),Python为你打开一扇门。
- Android添加拍照功能,Android相机开发(二): 给相机加上偏好设置
- 百度李彦宏谈Google回归:真刀真枪地再PK一次,再赢一次
- 使cmd窗口不自动关闭
- matlab画一个点电荷电场线,matlab画点电荷电场线
- restsharp text html,c# – 使用RestSharp发送HTTP POST Multipart / form-data字段
- linux磁盘写保护怎么修改_在Linux下创建写保护的文件的教程
- Spark视频王家林大神第8课:彻底理解大数据机器学习
- JVM结构和JVM的架构模型以及JAVA生命周期介绍
- java实现黄金队列
- 十个经典的Android开源项目
- 傲游 android 2.3,傲游浏览器安卓版-傲游浏览器手机版v5.2.3.3256-3454手机软件
热门文章
- WPF-使用代码创建Grid行与列,并将控件添加到Grid中的指定行指定列
- git rebase vs git merge
- RegSetValueEx 计算WCHAR字符长度 wcslen
- Windows Phone 模拟器安装使用详解
- PHP修改防火墙ip,利用防火墙进行同网段下的ip地址欺骗
- OpenCV-图像处理(12、形态学操作应用-提取水平与垂直线)
- centos安装python3.8.1_centos6.6下安装python3.8.1后报错??报错-问答-阿里云开发者社区-阿里云...
- 蜘蛛日志分析工具_如何分析网站日志 - 360蜘蛛池
- 重新分区_全面解析win10系统硬盘分区怎么调整大小
- hashmap 存取原理图_HashMap原理(二) 扩容机制及存取原理