出現次數超過陣列長度一半的數字

2021-09-12 01:22:52 字數 522 閱讀 1885

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列,由於數字2在陣列**現了5次,超過陣列長度的一半,因此輸出2。

hashmap 法

此法思路簡單,可以使用hashmap 記錄當前的數字和他出現的次數

但是重點在於 遍歷整個map,找到符合條件的值

2。 消去法

既然它出現的次數 大於 陣列的長度的一半,那麼 假設 定義 乙個index ,出現了乙個 其他數字,index-1;出現一次目標數字 ,index 加一 當index ==0時,將目標數字進行替換,最後即可找到

1.hashmap

public int find(int  x) 

}return 0;

}

2.消去法

public int find2(int  x) 

else

else

}} return result;

}

求無序陣列中元素出現次數超過陣列長度一半的數字

求無序陣列中元素出現次數超過陣列長度一半的數字.首先給出幾個 元素出現次數超過陣列長度一半 測試陣列 a1 7 a2 5 a3 9 不難發現 陣列中如果乙個數字出現次數超過數字長度的一半.如果把這個陣列排序,那麼排序後的陣列中間的數字一定是出現次數超過數字長度的一半.如陣列a1長度為7,按從小到大排...

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

找陣列中重複次數超過陣列長度一半的元素 進行標號的遍歷陣列,因為某個元素超過一半,儲存陣列中的數字和其出現次數 如果下乙個相同則次數加1,不同減1,如果次數變為0則儲存數字為下乙個數,最終情況是出現次數最多的元素 最終儲存下來,然後檢查是否超過半數。1 package cn.com.zfc.exam...

出現次數超過一半的數字

題目 陣列中有乙個數字出現的次數超過了陣列長度的一半,找出這個數字。乙個陣列中有很多數,現在我們要找出其中那個出現次數超過總數一半的數字,怎麼找呢?大凡當我們碰到某乙個雜亂無序的東西時,我們人的內心本質期望是希望把它梳理成有序的。所以,我們得分兩種情況來討論,無序和有序。如果無序,那麼我們是不是可以...