- 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で再現