找陣列中重複次數超過陣列長度一半的元素
進行標號的遍歷陣列,因為某個元素超過一半,儲存陣列中的數字和其出現次數
如果下乙個相同則次數加1,不同減1,如果次數變為0則儲存數字為下乙個數,最終情況是出現次數最多的元素
最終儲存下來,然後檢查是否超過半數。
1package
cn.com.zfc.example;23
/**4
* 找陣列中重複次數超過陣列長度一半的元素5*
6* @author
zfc7*8
*/9public
class
morehalfarray ;
12morethanhalf(array);13}
1415
public
static
void morethanhalf(int
array) else
if (array[i] ==result) else27}
28system.out.println(result);
2930
if(confirmnum(array, result)) else35}
3637
//判斷此元素的重複次數是否大於陣列長度的一半
38public
static
boolean confirmnum(int array, int
number) 44}
45if (time * 2 >array.length) else50}
51 }
出現次數超過陣列長度一半的數字
陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列,由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸出2。hashmap 法 此法思路簡單,可以使用hashmap 記錄當前的數字和他出現的次數 但是重點在於 遍歷整個map,找到符合條件的值 2。消去法 既...
C語言 求陣列中元素出現次數超過陣列長度一半的數
原理 設乙個變數儲存當前值。設乙個次數,當前值與下乙個值進行比較。假設相等,次數加一,假設不相等。次數減一。假設次數減到0了還是不相等,就把當前值替換掉。include include include include pragma warning disable 4996 int find half...
求無序陣列中元素出現次數超過陣列長度一半的數字
求無序陣列中元素出現次數超過陣列長度一半的數字.首先給出幾個 元素出現次數超過陣列長度一半 測試陣列 a1 7 a2 5 a3 9 不難發現 陣列中如果乙個數字出現次數超過數字長度的一半.如果把這個陣列排序,那麼排序後的陣列中間的數字一定是出現次數超過數字長度的一半.如陣列a1長度為7,按從小到大排...