題目描述:
給定兩個大小為 m 和 n 的有序陣列nums1和nums2。
請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o(log (m+n)) 。
你可以假設nums1和nums2均不為空。
困難題,要求演算法時間複雜度為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 兩個有序陣列,...