so easy,只要按序遍历到总长度的一半就好,不是很懂官网给一堆看不懂的公式。。。
#include <vector>
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int length = nums1.size()+nums2.size();
int midpos = length/2;
int head1 = 0, head2 = 0;
int first = 0, second = 0;
if (nums1.size() && nums2.size()) {
while(head1 + head2 <= midpos) {
if (head2 >= nums2.size() || head1 < nums1.size() && nums1[head1] <= nums2[head2]) {
second = first;
first = nums1[head1];
head1++;
}
else {
second = first;
first = nums2[head2];
head2++;
}
}
if (length%2) {
return double(first);
}
else {
return double(first+second)/2;
}
}
else {
if (nums1.size()) {
return double(nums1[midpos]+nums1[midpos+length%2-1])/2;
}
return double(nums2[midpos]+nums2[midpos+length%2-1])/2;
}
}
};