0004-Median of Two Sorted Arrays(寻找两个正序数组的中位数)
生活随笔
收集整理的這篇文章主要介紹了
0004-Median of Two Sorted Arrays(寻找两个正序数组的中位数)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這個(gè)系列算是出于個(gè)人興趣開(kāi)的一個(gè)新坑吧,最近看到同學(xué)刷LeetCode算法題,就想寫(xiě)寫(xiě)那些可以一行Python代碼寫(xiě)出來(lái)的題目,因此本專欄的文章的解題方式效率不做保證,只為追求“一行的浪漫”。
題目
題解
簡(jiǎn)單解釋一下題目,給定兩個(gè)有序數(shù)組nums1和nums2,要求找到兩個(gè)數(shù)組所有數(shù)字的中位數(shù),如果總共是奇數(shù)個(gè)則是中間數(shù)字,否則為中間兩個(gè)數(shù)字的平均值。本題難度為Hard。
代碼
這題的思路其實(shí)挺直白的,兩個(gè)數(shù)組合并并且找到中間數(shù)即可,對(duì)于Python3而言,我這里給出了一種通用解法,也給出了一種利用statistics統(tǒng)計(jì)庫(kù)得出結(jié)果的方法。
class Solution:def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:return sorted(nums1+nums2)[(len(nums1)+len(nums2))//2] if (len(nums1)+len(nums2))%2 == 1 else (sorted(nums1+nums2)[(len(nums1)+len(nums2))//2]+sorted(nums1+nums2)[(len(nums1)+len(nums2))//2-1])/2 import statistics class Solution:def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:return statistics.median(sorted(nums1+nums2))其中前一種解法速度較快,反饋如下。
總結(jié)
以上是生活随笔為你收集整理的0004-Median of Two Sorted Arrays(寻找两个正序数组的中位数)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 0003-Longest Substri
- 下一篇: Linux闲时自动抢占GPU脚本