median of two sorted arrays

来源:互联网 发布:网络恐怖主义案例 编辑:程序博客网 时间:2024/05/29 19:17

感觉这一题不难啊。用最常规的归并排序之后,找出中间的就行了。虽然不是最简单的方法,但一定是最方便的。

class Solution {public:    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2){    vector<int> tmp(nums1.size() + nums2.size());    int i = 0, j = 0, k = 0;    while (i < nums1.size() && j < nums2.size())    if (nums1[i] <= nums2[j])    tmp[k++] = nums1[i++];    else    tmp[k++] = nums2[j++];    while (i < nums1.size())    tmp[k++] = nums1[i++];    while (j < nums2.size())    tmp[k++] = nums2[j++];    int center = tmp.size() / 2;    if (tmp.size() % 2)    return tmp[center];    else    return (double)(tmp[center] + tmp[center - 1]) / 2.0f;    }};

对于已经排好序的,用归并排序复杂度是线性的:O(N)。

0 0
原创粉丝点击