LeetCode 兩個排序陣列的中位數

2021-08-20 06:10:35 字數 903 閱讀 1635

給定兩個大小為 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

package subject4;

public class subject4 , new int )); }}

class solution

return (findkth(nums1, 0, length1, nums2, 0, length2, length/ 2)

+ findkth(nums1, 0, length1, nums2, 0, length2, length / 2 + 1)) / 2;

} private double findkth(int nums1, int start1, int length1, int nums2, int start2, int length2, int k)

//nums1裡面的值都在前k中

if(start1==length1)

if(k==1)

int nextstart1 = start1+math.min(k/2, length1-start1);

int nextstart2 = start2+(k-nextstart1+start1);

if(nums1[nextstart1-1]<=nums2[nextstart2-1])

else

}}

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

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

LeetCode 兩個排序陣列合併問題

merge sorted array 問題 given two sorted integer arrays a and b,merge b into a as one sorted array.常規思想 從b的起始位置開始,將選中的值與a陣列值逐一判斷,找到a i 大於b j 的i將其插入,如此迭代...

Leetcode 合併兩個有序陣列

題目如下 給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 示例 輸入 nums1 1,2,3,0,0,0 m 3 nums2 2,5,6 n 3 輸出 1,2,2,3,5,6 用python只需要兩行 class so...