日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【leetcode】Median of Two Sorted Arrays

發(fā)布時間:2023/11/30 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【leetcode】Median of Two Sorted Arrays 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目簡述:

There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).

解題思路:

這本身是個很簡單的題目,但是題目要求他的復(fù)雜度為O(log(m+n)),就很有難度了。不過首先我們還是可以明確我們要用分治法。關(guān)鍵是怎么分治呢?我們有如下的思路(核心思想是求第k小):

class Solution:def findk(self, A, m, B, n, k):if m > n:return self.findk(B, n, A, m, k)if m == 0:return B[k-1]if k == 1:return min(A[0],B[0])pa = min(k / 2, m)pb = k - paif A[pa - 1] < B[pb - 1]: return self.findk(A[pa:], m - pa, B, n, k - pa)elif A[pa - 1] > B[pb - 1]:return self.findk(A, m, B[pb:], n - pb, k - pb)else:return A[pa - 1]# @return a floatdef findMedianSortedArrays(self, A, B):la = len(A)lb = len(B)l = la + lbif l % 2 == 0:return (self.findk(A, la, B, lb, l/2+1) + self.findk(A, la, B, lb, l/2))/2.0else:return self.findk(A, la, B, lb, l/2+1)

很容易證明這個想法的復(fù)雜度正是O(log(m+n))

轉(zhuǎn)載于:https://www.cnblogs.com/MrLJC/p/4240240.html

總結(jié)

以上是生活随笔為你收集整理的【leetcode】Median of Two Sorted Arrays的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。