一、設計思路
輸入相關id資訊,從檔案匯入
建立字典,便利的同時,如果字典裡沒有這個數字,建立相應的key,同時賦值1
如果已存在,則對相應key值+1
最後對字典遍歷,用三個變數分別儲存最大次大次次大id的字串同時用三個變數儲存其key值,
達到不用排序陣列的目的,相對優化的尋找出最大的三個數
二、**
#三、截圖print "queen"
#writher gu peng
#edit date 20160518
f=file('
三個小水王.txt')
lines = f.readlines() #
取全部資料
f.close()
#str1='lao 王五 ijn 85 lao 王五 ijn 46 lao 王五 ijn ijn lao 王五 lao ijn ijn lao 王五 32 2 ijn'
#print"please input number array"
#str1=raw_input()
'開啟的檔案為:三個小水王.txt'#
str1=str1.split()
#print str1
array=
#print array
for i in
lines:
i=i.replace('
\n',''
)
if(array.has_key(i)):
array[i] = array[i]+1
else
: array[i] = 1
#print array
max_str='0'
max_amount=0
max_a=0
max_b=0
max_c=0
max_astr='
null
'max_bstr='
null
'max_cstr='
null
'for i in
array:
if(array[i]>=max_c):
if(array[i]<=max_b):
max_c=array[i]
max_cstr=i
elif(array[i]<=max_a):
max_cstr=max_bstr
max_bstr=i
max_c=max_b
max_b=array[i]
elif(array[i]>max_a):
max_cstr=max_bstr
max_bstr=max_astr
max_astr=i
max_c=max_b
max_b=max_a
max_a=array[i]
"三個小水王為:
max_astr,max_bstr,max_cstr
#print max_a,max_b,max_c
尋找小水王
一 題目 三人行設計了乙個灌水論壇。資訊學院的學生都喜歡在上面交流灌水,傳說在論壇上有乙個 水王 他不但喜歡發帖,還會回覆其他id發的每個帖子。坊間風聞該 水王 發帖數 發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1 4,你能從發帖列表中快速的找到他們嗎?二 i...
尋找發帖「水王」
分析與解法 首先想到的是乙個最直接的方法,我們可以對所有id進行排序。然後再掃瞄一遍排好序的id列表,統計各個id出現的次數。如果某個id出現的次數超過總數的一半,那麼就輸出這個id。這個演算法的時間複雜度為o n log2 n n 如果id列表已經是有序的,還需要掃瞄一遍整個列表來統計各個id出現...
尋找發帖水王
首先想到的是乙個最直接的方法,我們可以對所有id進行排序。然後再掃瞄一遍排好序的id列表,統計各個id出現的次數。如果某個id出現的次數超過總數的一半,那麼就輸出這個id。這個演算法的時間複雜度為o n log2 n n 如果id列表已經是有序的,還需要掃瞄一遍整個列表來統計各個id出現的次數嗎?如...