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

2021-10-05 13:53:28 字數 863 閱讀 8615

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。

請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o(log(m + n))。

你可以假設 nums1 和 nums2 不會同時為空。

nums1 = [1, 3]

nums2 = [2]

則中位數是 2.0

nums1 = [1, 2]

nums2 = [3, 4]

則中位數是 (2 + 3)/2 = 2.5

class solution 

//如果是奇數長度,取中間數就可以

return find(nums1,0,nums2,0,(length+1)/2);

}public double find(intnums1,int nums1_begin,intnums2,int nums2_begin,int index)//這裡可以認為nums1已經查詢完畢

if(nums2_begin>=nums2.length)//這裡可以認為nums2已經查詢完畢

//如果只剩下乙個數從nums1和nums2中進行比較

if(index==1)

//如果nums1剩下的數字的個數不足index/2

if(nums1.length-nums1_begin//如果nums2中剩下的數字個數不足k/2

if(nums2.length-nums2_begin//進行比較確定排除掉哪k/2個數字

if(nums1[nums1_begin+index/2-1]return find(nums1,nums1_begin,nums2,nums2_begin+index/2,index-index/2);

}}

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

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

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

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

LeetCode4 尋找兩個有序陣列的中位數

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