水王
一、實驗要求
l?三人行設計了一個灌水論壇。信息學院的學生都喜歡在上面交流灌水,傳說在論壇上有一??
????個“水王”,他不但喜歡發(fā)帖,還會回復其他ID發(fā)的每個帖子。坊間風聞該“水王”發(fā)帖
????數(shù)目超過了帖子數(shù)目的一半。
l?如果你有一張當前論壇的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快
????速的找到這個傳說中的水王嗎?
二、設計思想
????每次比較兩個相鄰的ID是否一樣,如果不一樣則刪除。首先假設第一個ID是水王,然后和第二個比較,看看是否相同,如果不同則把第二個命名為水王,一次類推,如果相同,則time++。在盛夏的ID中,水王依然過半,重復這個過程,就可以找到水王。
public class FindWaterKing {public static void main(String[] args) {// TODO Auto-generated method stubint a[] = {1,2,1,2,2,1,1,3,1,2,1,4,1};int len = a.length;for(int i = 0; i < len ; i++){System.out.printf("%d ",a[i]);}System.out.println("水王是:"+getKing(a));}/*** @param array 表示存放帖子的數(shù)組,數(shù)組的元素為用戶的ID* @return 水王的ID*/public static int getKing(int[] array){int len = array.length; // 帖子的數(shù)量int result = 0; // 開始默認水王為下標為0的IDfor(int i = 1; i < len; i++) // 遍歷所有帖子{if(array[result]==array[i]); // 如果水王的的ID和當前ID相同,什么也不做else // 如果不相同,則需要將當前ID和水王ID抵消{int temp = array[result]; // 記錄下水王的IDboolean flag = true; // 記錄從水王的下標到當前下標i之間是否還有水王的帖子,默認為truewhile(result<=i&&flag){ // 水王的下標向后移動,查找是否還有水王result++;if(array[result]==temp) // 如果當前下標i之前會有一個水王的帖子,循環(huán)結(jié)束。flag = false;}}}return array[result];} }
轉(zhuǎn)載于:https://www.cnblogs.com/ever1961211/p/6730740.html
總結(jié)
- 上一篇: 空间四点定位原理及应用
- 下一篇: UG出工程图