找陣列中重複次數超過陣列長度一半的元素

2022-02-04 07:33:06 字數 812 閱讀 1613

找陣列中重複次數超過陣列長度一半的元素

進行標號的遍歷陣列,因為某個元素超過一半,儲存陣列中的數字和其出現次數 

如果下乙個相同則次數加1,不同減1,如果次數變為0則儲存數字為下乙個數,最終情況是出現次數最多的元素 

最終儲存下來,然後檢查是否超過半數。

1

package

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,按從小到大排...