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

2021-09-27 07:28:51 字數 733 閱讀 5921

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

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

你可以假設nums1nums2不會同時為空。

示例 1:

nums1 = [1, 3]

nums2 = [2]

則中位數是 2.0

示例 2:

nums1 = [1, 2]

nums2 = [3, 4]

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

**:

public double findmediansortedarrays(int nums1, int nums2) 

int min=0,max=m,halflen=(m+n+1)/2;

while(min<=max)else if(i>min&&nums1[i-1]>nums2[j])elseelse if(j==0)else

if((m+n)%2==1)

int minright=0;

if(i==m)else if(j==n)else

return (maxleft+minright)/2.0;}}

return 0.0;

}

我也沒搞明白為什麼這麼做。。。。。

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

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

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

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

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

令人頭禿的困難題 僅寫我的部分理解,詳見學習題解鏈結。1 變數解釋lmax 切割點左側最大元素 rmin 切割點右側最小元素 cut 中位數的切割點 eg 1,2,3 lmax rmin 2 1,2 lmax 1 rmin 2 2 中位數中位數切點滿足的條件有 lmax1 rmin2 lmax2 r...