Leetcode---4.Median of Two Sorted Arrays
2017-10-03 21:43
211 查看
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
分析:
方法一:
将nums1和nums2进行合并,排序,最后取中位数。代码如下:
class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { double mid; /* //方法1: //将nums1和nums2合并 nums1.insert(nums1.end(),nums2.begin(),nums2.end()); //排序 sort(nums1.begin(),nums1.end()); //取中位数 int size=nums1.size(); if(size%2==0){ mid=(nums1[size/2]+nums1[size/2-1])/2.0; } else{ mid=nums1[size/2]; } */ //方法2 int size1=nums1.size(); int size2=nums2.size(); vector<int> ret(size1+size2); merge(nums1.begin(),nums1.end(),nums2.begin(),nums2.end(),ret.begin()); //取中位数 int size=size1+size2; if(size%2==0){ mid=(ret[size/2]+ret[size/2-1])/2.0; } else{ mid=ret[size/2]; } return mid; } };
说明:
这里采用了两种合并的方法进行实现:
1、vector中的insert函数:
insert() 函数有以下三种用法:
a、
iterator insert( iterator loc, const TYPE &val );
在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器,
b、
void insert( iterator loc, size_type num, const TYPE &val );
在指定位置loc前插入num个值为val的元素
c、
void insert( iterator loc, input_iterator start, input_iterator end );
在指定位置loc前插入区间[start, end)的所有元素 .
顶
2、stl中的merge函数:
merge函数的作用是:将两个有序的序列合并为一个有序的序列。
函数参数:merge(first1,last1,first2,last2,result,compare);
firs1t为第一个容器的首迭代器
last1为第一个容器的末迭代器
first2为第二个容器的首迭代器
last2为第二个容器的末迭代器
result为存放结果的容器,comapre为比较函数(可略写,默认为合并为一个升序序列)。
相关文章推荐
- 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 4.Median of Two Sorted Arrays
- [LeetCode] Median of Two Sorted Arrays
- Leetcode[4]-Median of Two Sorted Arrays
- 《leetCode》:Median of Two Sorted Arrays
- LeetCode4—Median of Two Sorted Arrays
- LeetCode-Median of Two Sorted Arrays
- Median of Two Sorted Arrays-LeetCode
- Leetcode: Median of Two Sorted Arrays
- LeetCode 004 Median of Two Sorted Arrays *
- LeetCode 之 Median of Two Sorted Arrays
- Leetcode_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