Median of Two Sorted Arrays - LeetCode 4
来源:互联网 发布:使用u盘安装linux系统 编辑:程序博客网 时间:2024/05/20 21:45
题目描述:
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
Tags: Divide and Conquer Array Binary Search
分析:
首先,中位数的定义是位于中间位置的元素,如果是偶数个元素,那么中位数就是中间两个元素的平均值。
看到时间复杂度要求,用归并就可以了。先归并排序,然后直接定位中间的元素,或中间两个元素,求出平均值即可。
当然,归并之前得判断是否两个数组都非空,若其中一个为空就不用归并了。
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
Tags: Divide and Conquer Array Binary Search
分析:
首先,中位数的定义是位于中间位置的元素,如果是偶数个元素,那么中位数就是中间两个元素的平均值。
看到时间复杂度要求,用归并就可以了。先归并排序,然后直接定位中间的元素,或中间两个元素,求出平均值即可。
当然,归并之前得判断是否两个数组都非空,若其中一个为空就不用归并了。
以下是实现代码:
/**////////////////////////////44ms//*/class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { double mid = 0.0; int m = nums1.size(); int n = nums2.size(); int len = m + n; if(len == 0) return mid; if(n == 0 && m > 0){ //nums2为空,直接在nums1中找中位数 if(m == 1) mid = (double)nums1[0]; else if(m %2 == 0) mid = (nums1[m/2] + nums1[m/2 -1])/2.0; else mid = (double)nums1[m/2]; return mid; } if(m == 0 && n > 0){ //nums1为空,直接在nums2中找中位数 if(n == 1) mid = (double)nums2[0]; else if(n %2 == 0) mid = (nums2[n/2] + nums2[n/2 -1])/2.0; else mid = (double)nums2[n/2]; return mid; } vector<int> vec; int i = 0,j = 0; while(i < m && j < n){ //归并 if(nums1[i] <= nums2[j]){ vec.push_back(nums1[i]); i++; } else{ vec.push_back(nums2[j]); j++; } } while(i < m){ vec.push_back(nums1[i]); i++; } while(j < n){ vec.push_back(nums2[j]); j++; } //在归并后的数组中找中位数 if(len % 2){ mid = (double)vec[len/2]; } else{ mid = (vec[len/2] + vec[len/2 -1])/2.0; } return mid; }};
0 0
- Leetcode 4 Median of Two Sorted Arrays
- LeetCode 4 - Median of Two Sorted Arrays
- Leetcode 4 Median of Two Sorted Arrays
- Leetcode 4 Median of Two Sorted Arrays
- [leetcode 4] Median of Two Sorted Arrays
- LeetCode 4:《Median of Two Sorted Arrays》
- [Leetcode] 4 - Median of Two Sorted Arrays
- leetcode|4|Median of Two Sorted Arrays
- [Leetcode]4Median of Two Sorted Arrays
- leetcode 4 Median of Two Sorted Arrays
- LeetCode #4 Median of Two Sorted Arrays
- LeetCode-4-Median of Two Sorted Arrays
- LeetCode 4 Median of Two Sorted Arrays
- leetcode 4 Median of Two Sorted Arrays
- LeetCode 4 Median of Two Sorted Arrays
- Leetcode[4] Median of Two Sorted Arrays
- LeetCode 4 - Median of Two Sorted Arrays
- leetcode 4 -- Median of Two Sorted Arrays
- CSS3多行显示省略号...
- 常驻内存(Redis) ,界哥说 redis里面保存了很多的用户手机,万一宕机了呢
- 第2章 算法入门
- c语言—数组2
- 【练习题】读取一个字符串,计算每个字母出现的个数
- Median of Two Sorted Arrays - LeetCode 4
- 练习代码(三)复用类
- hdu 1385 Minimum Transport Cost (Floyd 路径输出)
- 脚本无阻塞加载
- 多行文本超出 JS省略号...
- java中多线程的基本理解以及运行机制
- 黑马程序员——java基础——GUI
- Jackson 使用遇到 Unrecognized field, not marked as ignorable
- 关于wikibook上的singleton的疑问