LC4。2つのソート配列の中央値

  1. 2つのソート配列のハードの中央値

4430

607

お気に入り

共有それぞれ2つのソートアレイnums1とサイズmのnums2及びnが存在します。

2つのソート配列の中央値を検索します。全体的な実行時間の複雑さはO(ログ(M + N))であるべきです。

あなたはnums1をとることができるとnums2は両方とも空にすることはできません。

例1:

nums1 = [1,3] nums2 = [2]

中央値は2.0例2:

nums1 = [1、2] nums2 = [3、4]

中央値は、(2 + 3)/ 2 = 2.5であります

アイデア:中間の要素を見つけるために、配列トラバーサルを追加

コード:のpython3

class Solution:
    def findMedianSortedArrays(self, nums1, nums2) -> float:
        mid=(len(nums1)+len(nums2))//2
        m,n=0,0
        arr=[]
        for i in range(len(nums1)+len(nums2)):
            if len(nums1)<=m:
                arr.append(nums2[n])
                n+=1
            elif len(nums2)<=n:
                arr.append(nums1[m])
                m+=1
            elif nums1[m]<=nums2[n]:
                arr.append(nums1[m])
                m+=1
            else:
                arr.append(nums2[n])
                n+=1
        print(arr)
        print(mid)
        if (len(nums1)+len(nums2))%2==0:
            print(arr)
            print(arr[mid])
            return float((arr[mid]+arr[mid-1])/2)
        else:
            return float(arr[mid])
复制代码

ます。https://juejin.im/post/5d09fb03f265da1b695d62e7で再現

おすすめ

転載: blog.csdn.net/weixin_34318326/article/details/93173673