LeetCode OJ:Median of Two Sorted Arrays(两个有序数组的中位数)
2017-02-22 21:24
591 查看
Description
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)).
Example 1:
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
Example 2:
nums1 = [1, 2]
nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5
解题思路
考虑时间复杂度。STL中set和multiset有自动排序功能,因此本题借助了multiset(因为可能存在相同的值),把两个数组中的值都先插入到multiset对象中,再找到中间的值就简单了。Code
class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { multiset<int> miset; double median = 0; int num1 = nums1.size(); int num2 = nums2.size(); if(num1==0&&num2==0) return median; miset.insert(nums1.cbegin(),nums1.cend()); miset.insert(nums2.cbegin(),nums2.cend()); int sum = num1 + num2; multiset<int>::iterator set_it = miset.begin(); int num = 0; //num用来标记miset中走的位置 int i =sum/2; //i用来确定中间位置 while(set_it != miset.end()){ if(num == i){ if(sum%2==0) //两个数组总共有偶数个元数 median = (*set_it + *(--set_it))/2.0; else //两个数组总共有奇数个元数 median = *set_it; break; //找到中间的值就跳出循环 } num ++; set_it++; } return median; } };
相关文章推荐
- LeetCode OJ 之 Median of Two Sorted Arrays(两个有序数组的中位数)
- [LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数
- 两个有序数组的中位数 Median of Two Sorted Arrays
- [LeetCode]Median of Two Sorted Arrays 二分查找两个有序数组的第k数(中位数)
- Median of Two Sorted Arrays(两个有序数组的中位数)
- Q4 Median of Two Sorted Arrays 两个有序数组的中位数
- Median of Two Sorted Arrays---两个有序数组查找中位数
- [leetcode] Median of Two Sorted Arrays 寻找两个有序数组的中位数
- 两个有序数组的中位数Median of Two Sorted Arrays(很重要)
- [Leetcode #4]Median of Two Sorted Arrays 计算两个有序数组的中位数
- ~~~~(>_<)~~~~Median of Two Sorted Arrays:两个有序数组寻找中位数
- Median of Two Sorted Arrays 两个有序数组的中位数@LeetCode
- Median of Two Sorted Arrays 两个有序数组的中位数@LeetCode
- Median of Two Sorted Arrays - 寻找两个有序数组的中位数(重)
- [LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数
- [Leetcode #4]Median of Two Sorted Arrays 计算两个有序数组的中位数
- [LeetCode]Median of Two Sorted Arrays 二分查找两个有序数组的第k数(中位数)
- [LintCode] Median of Two Sorted Arrays 两个有序数组的中位数
- [LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数
- LeetCode | Median of Two Sorted Arrays(两个数组的中位数)