查詢水王 4 17

2022-05-03 05:45:09 字數 500 閱讀 1437

隊友:劉雨鑫

程式設計思路:  

老師在上課中提到過,利用對子問題來解決水王問題。

水王的特點為:(1)每貼必回(2)水王的發貼數超過總貼數的一半;

如果每次刪除兩個不同的id,那麼剩下的id列表中,「水王」id出現的次數仍然超過總數的一半。看到這一點後,就可以通過不斷重複這個過程,把id列表中的id總數降低(轉化為更小的問題),從而得到問題的答案。  

1

package

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 且只需要常熟...