問題描述:
多重集中重數最大的元素稱為眾數...就是乙個可以有重複元素的集合,在這個集合中重複的次數最多的那個數就叫它的眾數...
如s = [1,2,2,2,3,5] 重數是2,其重數為3
例項**如下:
list_num =
list_num_count = 0
dict_num ={}
#從檔案讀入,檔案第一行為集合中元素的個數,以後每一行為乙個元素
list_num_count = int(open('input.txt','r').readline())
for line_num, line in enumerate(open("input.txt",'r')):
if line_num > 0:
list_num += line.split()
#將讀到的元素加入的字典中
for item in list_num:
if dict_num.has_key(item):
dict_num[item] += 1
else:
dict_num.setdefault(item,1)
pass
#找到出現次數最多的那個數,找到重數
dict_sort_by_top = {}
top_value = 0
for valus in dict_num.itervalues():
if valus> top_value:
top_value = valus
pass
#根據重數找到眾數...這是因為考慮到可能有多個元素有相同多的重數
the_pop_num = 0
the_pop_num_count = 0
for keys,values in dict_num.iteritems():
if values == top_value:
the_pop_num = keys
the_pop_num_count = values
#輸出到檔案,第一行為從數,第二行為重數
write_line = '%s\n%s' %(the_pop_num, the_pop_num_count)
open("output.txt",'w').write(write_line)
這裡假設有同級目錄檔案input.txt內容如下:
第一行的8代表元素個數,其後每一行有乙個元素。
測試環境為python2.7.6,
python程式針對input.txt檔案操作的執行結果如下:
同時生成output.txt檔案記錄了眾數37及其重複次數3。
Leetcode 求眾數 Python實現
題目 求眾數 給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在眾數。示例 輸入 3,2,3 輸出 3 輸入 2,2,1,1,1,2,2 輸出 2 分析 馬上能想到的,就是構建數頻字典,然後找出數量大於n 2的元素即...
如何用Python求眾數
max set a key a.count 它可以返回列表a中的眾數,現對其進行解釋。部落格 python set 用法.中提到 set 函式用於建立乙個無序不重複元素集,刪除重複資料。不過直接用max a,key a.count 結果是一樣的。關於max 函式中的引數key,python官方文件中...
169 求眾數 229 求眾數 II
不限定時間複雜度的話,很多人會先排序,再遍歷的方法來做。不限定空間複雜度的話,很多人會用hash表來做。那麼,有了這兩個限定,就只能用摩爾投票演算法了。主元素問題典型解法。摩爾投票演算法 時間複雜度o n 空間複雜度o 1 class solution else if nums i ans cnt ...