本题想做出来并不难,重新构造一个数组num,将nums1和nums2中的元素按序添加到数组num中,再寻找其中位数即可。 代码如下:
- class Solution {
- public:
- double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
- vector<int> num;
- int i=0;
- int j=0;
- while(i
size() && jsize()) - {
- if(nums1[i] < nums2[j])
- {
- num.push_back(nums1[i]);
- i++;
- }
- else
- {
- num.push_back(nums2[j]);
- j++;
- }
- }
- while(i < nums1.size())
- {
- num.push_back(nums1[i]);
- i++;
- }
- while(j < nums2.size())
- {
- num.push_back(nums2[j]);
- j++;
- }
- //数组元素数量为奇数
- int n = num.size();
- if(n % 2 == 1) return double(num[n/2]);
- else return (double)(num[n/2] + num[n/2-1])/2;
- }
- };
注意初始化num的时候,不要将size给初始化进去了: vector