最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想

 更新時(shí)間:2017年12月19日 23:48:22   作者:七度上弦  
這篇文章主要介紹了python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想,需要的朋友可以參考下

題目:

這里寫圖片描述

解法一:比較元素是否相等

思路說明:

這種應(yīng)該是普通人最先想到的解法,先獲取到數(shù)組之后進(jìn)行有小到大排序,然后初始化一個(gè)min=0(代表新數(shù)字的開始角標(biāo)),然后遍歷新數(shù)組的每一個(gè)元素,如果兩個(gè)元素不相等,count等于i-min,然后再把i賦值給min,當(dāng)i遍歷到最后一個(gè)元素時(shí),count等于數(shù)組長度-min(這里的min是上一輪循環(huán)后最后一組數(shù)字的第一個(gè)元素的角標(biāo)),當(dāng)然這種解法面試官不會(huì)喜歡?

(m, n) = input().split()
ar = [int(x) for x in input().split()]
res = []
ar.sort()
min = 0
for i in range(1,len(ar)) :
  if ar[i-1] != ar[i]:
    count = i - min
    min = i
    res.append(str(count))
  if i == (len(ar)-1):
    count = len(ar)-min
    res.append(str(count))
print(' '.join(res))

解法二:桶計(jì)算

思路:獲取到輸入的數(shù)組之后,獲取該數(shù)組的長度,因?yàn)楦鶕?jù)題目N<=20,也就是說數(shù)組的元素不會(huì)超過20,那么我們定義一個(gè)1維,長度為20的數(shù)組res,并初始化元素為0是足夠的。先上代碼,再進(jìn)行解析

(m, n) = input().split()
ar = [int(x) for x in input().split()]
result = []
res = [0 for x in range(20)]
for a in ar:
  res[a-1]+=1
for r in res:
  if r != 0:
    result.append(str(r))
print(' '.join(result))

以上的而核心代碼就在于這兩行

for a in ar:
  res[a-1]+=1

我們遍歷輸入的數(shù)組ar的每一個(gè)元素,用res[a]的數(shù)值代表a出現(xiàn)的次數(shù),我們每次循環(huán),總能找到合適的桶存放a,那么我們直接+1即可,比如說ar = [2, 2, 1, 4]

循環(huán)1: 
a = 2 
res[2] = 0+1 = 1 
循環(huán)2: 
a = 2 
res[2] = 1 +1 =2 
循環(huán)3: 
a = 1 
res[1] = 0+1 = 1 
循環(huán)4: 
a = 4 
res[4] = 0+1 = 1 
這樣我們得到的 res = [0, 1 ,2 ,0 ,1 ,0 ····]

延伸:桶排序

根據(jù)以上的思路我們得到了一個(gè)新的數(shù)組res,仔細(xì)分析這個(gè)數(shù)組的意思,1出現(xiàn)1次,2出現(xiàn)2次,4出現(xiàn)1次,因?yàn)閿?shù)組的特性保證元素的角標(biāo)是從小到大排序,這就衍生出了桶排序的概念,忽略0的情況,用兩個(gè)循環(huán),外層循環(huán)遍歷len(res)次,角標(biāo)為i,內(nèi)層循環(huán)遍歷res[i]次,角標(biāo)為j,意思就是有幾個(gè)輸出幾個(gè),例如1有1個(gè),那就輸出1個(gè),2有兩個(gè),就循環(huán)兩次,輸出兩次,4有1個(gè),就輸出一個(gè),擴(kuò)展代碼如下:

#省略上述代碼
for i in range(len(res)):
  if res[i] != 0:
    for j in range(res[i]):
      result.append(i)
print(result)

執(zhí)行結(jié)果如下:

相關(guān)文章

  • Python利用os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤文件

    Python利用os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤文件

    你們一定想不到os模塊還可以這樣玩,本文就將利用Python中的os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤文件功能,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下
    2022-11-11
  • python爬蟲面試寶典(常見問題)

    python爬蟲面試寶典(常見問題)

    這篇文章主要介紹了python爬蟲面試寶典及常見問題小結(jié),需要的朋友可以參考下
    2018-03-03
  • python中p-value的實(shí)現(xiàn)方式

    python中p-value的實(shí)現(xiàn)方式

    今天小編就為大家分享一篇python中p-value的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • TensorFlow2.0使用keras訓(xùn)練模型的實(shí)現(xiàn)

    TensorFlow2.0使用keras訓(xùn)練模型的實(shí)現(xiàn)

    這篇文章主要介紹了TensorFlow2.0使用keras訓(xùn)練模型的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python并行計(jì)算庫Joblib高效使用指北

    Python并行計(jì)算庫Joblib高效使用指北

    Joblib是用于高效并行計(jì)算的Python開源庫,其提供了簡單易用的內(nèi)存映射和并行計(jì)算的工具,以將任務(wù)分發(fā)到多個(gè)工作進(jìn)程中,這篇文章主要介紹了Python并行計(jì)算庫Joblib使用指北,需要的朋友可以參考下
    2024-08-08
  • python中文字符如何轉(zhuǎn)url編碼

    python中文字符如何轉(zhuǎn)url編碼

    這篇文章主要介紹了python中文字符如何轉(zhuǎn)url編碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python字符與ASCII碼相互轉(zhuǎn)換方法

    Python字符與ASCII碼相互轉(zhuǎn)換方法

    在做python編程時(shí),碰到了需要將字母轉(zhuǎn)換成ascii碼的需求,所以下面這篇文章主要給大家介紹了關(guān)于Python字符與ASCII碼相互轉(zhuǎn)換的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • python實(shí)現(xiàn)PyEMD經(jīng)驗(yàn)?zāi)B(tài)分解殘差量分析

    python實(shí)現(xiàn)PyEMD經(jīng)驗(yàn)?zāi)B(tài)分解殘差量分析

    這篇文章主要為大家介紹了PyEMD經(jīng)驗(yàn)?zāi)B(tài)分解及變體殘余量分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼

    python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼

    這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • PyCharm關(guān)閉礙眼的波浪線圖文詳解

    PyCharm關(guān)閉礙眼的波浪線圖文詳解

    這篇文章主要介紹了PyCharm關(guān)閉礙眼的波浪線的實(shí)現(xiàn),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論

冀州市| 穆棱市| 大邑县| 晴隆县| 郑州市| 昌都县| 阿图什市| 介休市| 德昌县| 惠水县| 松江区| 垦利县| 来凤县| 甘洛县| 清镇市| 小金县| 营山县| 远安县| 扶绥县| 闸北区| 望都县| 英德市| 防城港市| 洞口县| 济源市| 温州市| 涿州市| 罗源县| 木兰县| 鹿泉市| 新宾| 大竹县| 恩平市| 卢湾区| 丘北县| 来凤县| 应用必备| 崇左市| 额济纳旗| 鱼台县| 平乡县|