4 尋找兩個正序陣列的中位數

2022-10-09 08:21:10 字數 984 閱讀 4536

難度困難5239

演算法的時間複雜度應該為o(log (m+n))

示例 1:

輸入:nums1 = [1,3], nums2 = [2]

輸出:2.00000

解釋:合併陣列 = [1,2,3] ,中位數 2

示例 2:

輸入:nums1 = [1,2], nums2 = [3,4]

輸出:2.50000

解釋:合併陣列 = [1,2,3,4] ,中位數 (2 + 3) / 2 = 2.5

1

class

solution else12}

13//

kth == 1,2,3,4

14//

尋找2個有序陣列 合併後的第 k 大數字

15double find_kth(vector& nums1, vector& nums2, int a_start, int b_start, int

kth)

19if (b_start>=nums2.size())

22if (kth == 1

) 25

int a_mid = a_start + kth/2 -1;26

int b_mid = b_start + kth/2 -1;27

if (a_mid < nums1.size() && b_mid 33 } else

if (a_mid < nums1.size()) return find_kth(nums1,nums2,a_mid+1,b_start,kth-kth/2

);34

else

if (b_mid < nums2.size()) return find_kth(nums1,nums2,a_start,b_mid+1,kth-kth/2

);35

else

return0;

36}37 };

4 尋找兩個正序陣列的中位數

思路 我現在還沒有進行優化,大概就是合併陣列 參照之前的順序表合併 然後如果合併陣列的大小sum是偶數,返回sum 2和sum 2 1兩個元素除以二,如果sum是奇數則直接返回sum 2的元素 double findmediansortedarrays int nums1,int nums1size...

4 尋找兩個正序陣列的中位數

給定兩個大小為 m 和 n 的正序 從小到大 陣列nums1和nums2。請你找出這兩個正序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設nums1和nums2不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0示例 2 nums1 1,2 nu...

4 尋找兩個正序陣列的中位數

題目描述 給定兩個大小為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出這兩個正序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 示例 2...