題目:
設計思想:
最簡單的思路就是:統計每乙個id出現的次數,然後找出出現最多的id就是水王。
第二種更優的思路就是:利用水王發帖次數大於一半,然後兩兩一消,從第乙個數開始,如果等於它的下一位,number+1,
如果不等於,number-1,不等於相當於把這兩個帖子都刪除,直接從這兩個的後乙個開始。
最後由於水王發帖數大於一半,不管怎樣,它肯定會被剩下,從而得出水王id。
**實現:
法一:
public class shuiw法二:} return sum; }
public static void main(string args) ,,,,,,,,,};
int id = new int[a.length][2];
for(int i = 0;i < a.length;i++)
int max = id[0][0];
int p = 0;
for(int j = 1 ; j < id.length; j ++)
} system.out.println("最多"+max+"次,數為"+p);
} }
public static int find(int array)實現截圖:法1:else
else
} }
return result;
} public static void main(string args)
; system.out.println("水王的id:"+find(array));
}
法2.:
個人總結:
通過本次課堂練習,我得出乙個重要的結論就是,一定要讀懂題,將其分析透徹,自己一開始就是不懂利用水王發帖數目超過了帖子數目的一半這個條件以至於沒有好的思路,後來經同學和老師提醒,才有了眉目。
課堂練習 找水王
一 題目及題目要求 二 設計思路 1 把帖子列表,抽象為乙個一維陣列arr num 輸入長度length為id總數,每個陣列元素為乙個id。2 再設定乙個迴圈,按照順序來依次兩兩比較,如果作者id相同則保留,如果作者id不同則消除。3 最後剩下id即為水王id 三 源程式 includeusing ...
課堂練習 找「水王」
一 題目要求 現有乙個灌水論壇,資訊學院的學生都喜歡在上面交流灌水。傳說在論壇上有乙個 水王 它不但喜歡發帖,還會回覆其他id發的每個帖子。坊間風聞該 水王 發帖數目已超過了帖子數目的一半。二 設計思路 本題要求時間複雜度是o n 我們可以設定乙個計數器flag,和乙個變數shuiwang存放當前的...
找水王課堂練習
1題目要求 三人行設計了乙個灌水論壇。資訊學院的學生都喜歡在上面交流灌水,傳說在論壇上有乙個 水王 他不但喜歡發帖,還會回覆其他id發的每個帖子。坊間風聞該 水王 發帖數目超過了帖子數目的一半。2 設計思路 1首先如果每次刪除兩個不同的id,那麼,在剩下的id列表中,水王 id出現的次數仍然超過總數...