4. 寻找两个正序数组的中位数
好吧 我用的O(n)的
class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int n = nums1.size(), m = nums2.size(); int mid = (n + m) / 2; if(n == 0 && m == 0) return 0; int i = 0, j = 0; int cnt = 0, x = 0, y = 0; while(i < n || j < m) { if((i < n && j < m && nums1[i] < nums2[j]) || (i < n && j >= m) ) { if(((n + m) % 2 == 0) && cnt == mid - 1) { x = nums1[i]; } if(cnt == mid) y = nums1[i]; i++; cnt++; } else if(j < m) { if(((n + m) % 2 == 0) && cnt == mid - 1) { x = nums2[j]; } if(cnt == mid) y = nums2[j]; j++; cnt++; } } if((n + m) & 1) x = y; return (x + y) / 2.0; } };
自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。