#40491: 解題思路-Python-給我自己的筆記


channoliu@gmail.com (channo liu)

學校 : 不指定學校
編號 : 269467
來源 : [36.232.74.48]
最後登入時間 :
2024-06-16 19:34:38
b374. [福州19中]众数 | From: [36.232.91.171] | 發表日期 : 2024-05-24 20:33

執行效率較高31ms,解法二

參考「oxxostudio (oxxo.studio)」解法,https://zerojudge.tw/ShowThread?postid=28907&reply=0

1。先匯入函式庫。from collections import Counter

2。輸入n(接下來會有幾個數字)

3。將輸入的數字轉成一維list,d。(d=list(map(int,input().split( ))))

4。計算d的內容次數後,轉成字典型態存入a。(a=Counter(d))

5。取出a字典中所有的value值。(b=a.values( ))

6。利用max(b)找出出現次數最大的。

7。利用迴圈跑字典
  如果字典中value值和最大值相等時,把key存入答案list中。

8。排序答案

9。最後用迴圈印出答案

------------------------------------------------------------------

原本自己的想法解題,執行效率較低2.2s,但也可以AC,無字典解題狀態,解法一

1。輸入n。

2。輸入的數值存入(d)(list型態中)

3。排序d

4。跑while,當d不是空的的時候 (打算把值存到二維陣列s中,存號碼和次數)
  取出d最前面的值(d[0])
  把d[0]出現的次數和d[0]這兩個值存到(s)list中
  然後一一移除(d)list中,d[0]的值

5。找出(s)list中最大的值(出現次數最多的)

6。跑迴圈,跑s的長度
  一一判斷,如果出現的次數和最大值相同,就記下來

7。顯示答案


https://channoliu.blogspot.com/2024/05/zerojudge-b374-19.html

 

 

 
ZeroJudge Forum