• 八方資訊網(wǎng)歡迎您!
    八方資訊網(wǎng)>理財>正文

    一道LeetCode簡單題,卻打消了我對Python的自以為是

    2020-03-23 07:07:41 來源: 閱讀:

    優(yōu)質(zhì)文章,第一時間送達(dá)!

    Leetcode最新上線了手機(jī)版app,之前手機(jī)只能通過瀏覽器登錄網(wǎng)站學(xué)習(xí),如今有app,閑了就可以瞅兩道題。今天等車的時候隨手翻了一道題

    169. 多數(shù)元素 http://leetcode-cn.com/problems/majority-element/。

    看了下是眾數(shù)問題,腦子簡單過了下大概思路,就準(zhǔn)備接著看其他題了。但想想還是看下別人是怎么做的吧,結(jié)果….

    關(guān)于題目

    給定一個大小為 n 的數(shù)組,找到其中的多數(shù)元素。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大于 ? n/2 ? 的元素。

    你可以假設(shè)數(shù)組是非空的,并且給定的數(shù)組總是存在多數(shù)元素。

    示例 1:

    輸入: [3,2,3]

    輸出: 3

    示例 2:

    輸入: [2,2,1,1,1,2,2]

    輸出: 2

    暴力解法

    先來看看最簡單無腦的暴力解法,詳細(xì)大多數(shù)人都能想到該解題方式:

    1class Solution:
    2 def majorityElement(self, nums):
    3 majority_count = len(nums)//2
    4 for num in nums:
    5 count = sum(1 for elem in nums if elem == num)
    6 if count > majority_count:
    7 return num

    先計算列表1/2的長度,然后進(jìn)行for循環(huán)嵌套最終獲取結(jié)果。這種時間復(fù)雜度:O(n*n)的解法就不多贅述了。主要看看下面兩種解法。

    哈希表

    這種方法,在LeetCode上很常見,就是使用Counter的方式,生成針對元素與出現(xiàn)次數(shù)的字典,然后進(jìn)行計算。

    1class Solution:
    2 def majorityElement(self, nums):
    3 counts = collections.Counter(nums)
    4 return max(counts.keys, key=counts.get)

    本來覺得沒什么特別,但當(dāng)看到return操作時,覺得自己幾年的Python都白學(xué)了。居然不知道m(xù)ax函數(shù),具有key的方法…一直是用它來簡單的比較最大值。殊不知針對字典操作時,max可以通過定義key值來進(jìn)行動態(tài)比較。(類似的方法如sorted倒是經(jīng)常使用)…

    不知道m(xù)ax有key這個參數(shù)的,舉個手,讓我知道我不是一個人,哈哈…

    奇思妙想

    最讓我佩服的就是下面這種解題思路,堪稱經(jīng)典。

    文中定義有一個關(guān)鍵點,多數(shù)元素是指數(shù)據(jù)中出現(xiàn)大于n/2的元素。那么如果所有數(shù)字被單調(diào)遞增或者單調(diào)遞減的順序排了序,當(dāng)n是奇數(shù)時,眾數(shù)的下標(biāo)為n/2,當(dāng)n是偶數(shù)時,下標(biāo)為n/2 +1。于是出現(xiàn)了下面這種犀利的解法。

    1class Solution:
    2 def majorityElement(self, nums):
    3 nums.sort
    4 return nums[len(nums)//2]

    然而,官方的答案還遠(yuǎn)不止這些,一共提供了六種解答方式。所以,你覺得自己Python學(xué)到位了嗎?

    本文為企業(yè)推廣,本網(wǎng)站不做任何建議,僅提供參考,作為信息展示!

    推薦閱讀:蘋果x與xr

    網(wǎng)友評論
    請登錄后進(jìn)行評論| 0條評論

    請文明發(fā)言,還可以輸入140

    您的評論已經(jīng)發(fā)表成功,請等候?qū)徍?/p>

    小提示:您要為您發(fā)表的言論后果負(fù)責(zé),請各位遵守法紀(jì)注意語言文明

    回到首頁 回到頂部
    八方資訊網(wǎng) 關(guān)于我們| 聯(lián)系我們| 招聘信息| 老版地圖| 網(wǎng)站地圖
    免責(zé)聲明:八方資訊網(wǎng)所有文字、圖片、視頻、音頻等資料均來自互聯(lián)網(wǎng),不代表本站贊同其觀點,本站亦不為其版權(quán)負(fù)責(zé)。相關(guān)作品的原創(chuàng)性、文中陳述文字以及內(nèi)容數(shù)據(jù)龐雜本站無法一一核實,如果您發(fā)現(xiàn)本網(wǎng)站上有侵犯您的合法權(quán)益的內(nèi)容,請聯(lián)系我們,本網(wǎng)站將立即予以刪除!
    Copyright © 2012-2019 http://www.quan28.cn, All rights reserved.
    主站蜘蛛池模板: 精品人妻系列无码人妻免费视频 | 国内精品91最新在线观看| 麻豆精品不卡国产免费看| 亚洲AV无码成人精品区狼人影院| 国产精品电影在线观看| 中文字幕在线亚洲精品| 国产精品亚洲不卡一区二区三区| 精品国偷自产在线| 亚洲欧美精品午睡沙发| 国产精品hd免费观看| 99精品视频免费| 中文精品久久久久人妻不卡| 欧美国产日韩精品| 国产精品毛片VA一区二区三区| 亚洲精品国产福利一二区| 国产精品久久久久久久久久免费| 99精品视频在线| 精品无人码麻豆乱码1区2区| 国产精品vⅰdeoxxxx国产| 全国精品一区二区在线观看| 国产精品 日韩欧美| 久久96国产精品久久久| 精品黑人一区二区三区| 亚洲精品乱码久久久久久按摩| 精品人体无码一区二区三区 | 99热这里只有精品国产66 | 9191精品国产免费久久| 国产精品亚洲片夜色在线 | 欧美国产成人精品一区二区三区 | 国产精品∧v在线观看| 久久精品国产99国产精偷| 久久99精品国产| 日产国产精品亚洲系列| 久久国产欧美日韩精品| 亚洲国产精品va在线播放| 热久久国产欧美一区二区精品| 久久99精品国产麻豆婷婷| 国产精品99久久久久久宅男 | 四虎精品影库4HUTV四虎| 国产亚洲精品资在线| 国产精品九九九|