題:尋找發帖水王,出現次數恰好為個數的一半,求出這個數
/*
* 水王佔總數的一半,說明總數為偶數
* 水王不失一般性,假設隔乙個數就是水王的id,兩兩不同最後一定會消減為0
* 水王可能是最後乙個元素,每次掃瞄的時候,多乙個動作,與最後乙個元素進行比較,單獨計數,若恰好為數量的一半,則為水王
* 如果不是,計數不足一半,那麼去掉最後乙個元素,水王就是candidate
*///不同的數進行消除
public
static
intsolve
(int
arr)
//遇到與候選值相同的,次數加1
if(arr[i]
== candidate)
ntimes++
;else
ntimes--;}
if(countoflast == arr.length/2)
return arr[arr.length-1]
;else
return candidate;
}
出現次數超過陣列長度一半的數字
陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列,由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸出2。hashmap 法 此法思路簡單,可以使用hashmap 記錄當前的數字和他出現的次數 但是重點在於 遍歷整個map,找到符合條件的值 2。消去法 既...
求陣列中出現次數大於陣列長度一半元素
最近聽參加今年研究生考試的同學說了這樣一道演算法題 已知乙個整數陣列,讓你判斷其中是否存在出現次數大於陣列長度一半的元素,如果存在的話輸出其中第一次出現該元素時陣列的下標 如果不存在的話,輸出 1。這讓我想到了在 程式設計之美 上看到的乙個幾乎類似的題目 尋找發帖的 水王 只不過 程式設計之美 上的...
找陣列中重複次數超過陣列長度一半的元素
找陣列中重複次數超過陣列長度一半的元素 進行標號的遍歷陣列,因為某個元素超過一半,儲存陣列中的數字和其出現次數 如果下乙個相同則次數加1,不同減1,如果次數變為0則儲存數字為下乙個數,最終情況是出現次數最多的元素 最終儲存下來,然後檢查是否超過半數。1 package cn.com.zfc.exam...