LeetCode 4 兩個排序陣列的中位數

2021-08-22 02:27:57 字數 666 閱讀 3684

題目描述:

給定兩個大小為 m 和 n 的有序陣列nums1nums2

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

你可以假設nums1nums2均不為空。

困難題,要求演算法時間複雜度為o(log(m+n)),也就是最優方法

參考解法:

二分法查詢,每次捨棄部分區間:

public static double findmediansortedarrays(int a, int b) else

}//k表示第k小,對應下標為k-1

public static int findk(int a,int starta,int enda,int b,int startb,int endb,int k)else if(lenb<=0&&lena>0)

if(lena>lenb)

if(k==1)

int ka=math.min(lena,k/2);

int kb=k-ka;

if(a[starta+ka-1]==b[startb+kb-1])else if(a[starta+ka-1]}

leetcode 4 兩個排序陣列的中位數

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2 請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o log m n 示例 1 nums1 1,3 nums2 2 中位數是 2.0 示例 2 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 思路 兩個陣...

LeetCode 4 兩個排序陣列的中位數

給定兩個大小為 m 和 n 的有序陣列nums1和nums2。請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o log m n nums1 1,3 nums2 2 中位數是 2.0 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 本來可以歸併排序,直接求中位數,但是由...

LeetCode4 兩個排序陣列的中位數

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2 請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o log m n 示例 1 nums1 1,3 nums2 2 中位數是 2.0示例 2 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 兩個有序陣列,...