题目:https://leetcode.com/problems/median-of-two-sorted-arrays/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
方法
基本思路取两个链表的中值,记录两个数,中值和中值前一个数,若两链表和为偶数的话,返回该两数的平均,若为奇数,返回中值。
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int len1 = nums1.size();
int len2 = nums2.size();
int len = len1+len2;
int flag = false;
if(len%2==1){
flag = true;
}
int ilen = len/2+1;
int nj1 = 0,nj2 = 0;
int tmp,eventmp;
while((ilen>0)&&(nj1<len1)&&(nj2<len2)){
ilen--;
eventmp = tmp;
if(nums1[nj1]<nums2[nj2]){
tmp = nums1[nj1];
nj1++;
}
else{
tmp = nums2[nj2];
nj2++;
}
}
while((ilen>0)&&(nj1<len1)){
ilen--;
eventmp = tmp;
tmp = nums1[nj1];
nj1++;
}
while((ilen>0)&&(nj2<len2)){
ilen--;
eventmp = tmp;
tmp = nums2[nj2];
nj2++;
}
if(flag){
return tmp;
}
return (tmp+eventmp)/2.0;
}
};