国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

4. Median of Two Sorted Arrays

2019-11-06 08:19:40
字體:
來源:轉載
供稿:網友
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.0Example 2:nums1 = [1, 2]nums2 = [3, 4]The median is (2 + 3)/2 = 2.5Subscribe to see which companies asked this question.

重點是編寫一個找第k小的數的一個函數,然后根據a、b總數的奇偶性來求答案

double findk(vector<int> &a, int abeg, vector<int> &b, int bbeg,int k){//求a從位置abeg開始,b從bbeg開始,第k小的數 if (a.size() - abeg > b.size() - bbeg) return findk(b, bbeg, a, abeg, k);//保證a有效數目小 if (abeg == a.size()) return b[bbeg+k - 1];//a已經超上限了,或者說空了 if (k == 1) return min(a[abeg], b[bbeg]);//第一個數 int na = min(k / 2, (int)a.size() - abeg), nb = k - na; if (a[abeg + na - 1] < b[bbeg + nb - 1]) return findk(a, abeg + na, b, bbeg, k - na);//舍棄a中小的部分 else if (a[abeg + na - 1] == b[bbeg + nb - 1]) return a[abeg + na - 1]; else return findk(a, abeg, b, bbeg + nb, k - nb);}class Solution {public: double findMedianSortedArrays(vector<int>& a, vector<int>& b) { int k = a.size() + b.size(); if (k % 2) return findk(a, 0, b, 0, k / 2+1); else return (findk(a, 0, b, 0, k / 2) + findk(a, 0, b, 0, k / 2+1))/2; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 义马市| 长沙市| 兴宁市| 汉阴县| 昭通市| 潼南县| 汶上县| 临澧县| 鄂尔多斯市| 郸城县| 富民县| 洪雅县| 衡东县| 平潭县| 望城县| 镇安县| 承德县| 富顺县| 隆子县| 讷河市| 射洪县| 平武县| 措勤县| 织金县| 罗江县| 新安县| 柳江县| 中西区| 鹿泉市| 肃南| 岳普湖县| 军事| 彰化市| 定结县| 穆棱市| 萝北县| 化德县| 固镇县| 章丘市| 百色市| 怀仁县|