隊友:劉雨鑫
程式設計思路:
老師在上課中提到過,利用對子問題來解決水王問題。
水王的特點為:(1)每貼必回(2)水王的發貼數超過總貼數的一半;
如果每次刪除兩個不同的id,那麼剩下的id列表中,「水王」id出現的次數仍然超過總數的一半。看到這一點後,就可以通過不斷重複這個過程,把id列表中的id總數降低(轉化為更小的問題),從而得到問題的答案。
1package
tt20170227;23
public
class
watergod ;
9int result = 0;
10int times = 0;
1112
for (int i = 0; i < a.length; i++) else
else22}
23}2425
system.out.println(result);26}
27 }
尋找發帖「水王」
分析與解法 首先想到的是乙個最直接的方法,我們可以對所有id進行排序。然後再掃瞄一遍排好序的id列表,統計各個id出現的次數。如果某個id出現的次數超過總數的一半,那麼就輸出這個id。這個演算法的時間複雜度為o n log2 n n 如果id列表已經是有序的,還需要掃瞄一遍整個列表來統計各個id出現...
尋找發帖水王
首先想到的是乙個最直接的方法,我們可以對所有id進行排序。然後再掃瞄一遍排好序的id列表,統計各個id出現的次數。如果某個id出現的次數超過總數的一半,那麼就輸出這個id。這個演算法的時間複雜度為o n log2 n n 如果id列表已經是有序的,還需要掃瞄一遍整個列表來統計各個id出現的次數嗎?如...
尋找發帖「水王」
題目 解法1 對所有id排序,因為該id出現的次數超過總數的一半,對有序的序列,第n 2項即為所求id。解法2 每次刪除兩個不同的id,那麼剩下的id列表中,水王 的id次數仍然超過總數的一半。可以通過不斷重複這個過程,把id列表中的id總數降低,從而得到答案。總的時間複雜度只有o n 且只需要常熟...