給你一個長度為 n 的數組,其中只有一個數字出現了大於等於 n/2 次,問如何使用優秀的 時空復雜度快速找到這個數字。


思路一:

如果我們把眾數記為 +1,遇到相同數就加1,遇到不同的數就減1,把其他數記為 -1,將它們全部加起來,顯然和大於 0,從結果本身我們可以看出眾數比其他數多。

使用for循環取值幾個數也許就查找到了。

方法二:哈希表
使用hashtab 實現計數也行。

我們使用哈希映射(HashMap)來存儲每個元素以及出現的次數。對於哈希映射中的每個鍵值對,鍵表示一個元素,值表示該元素出現的次數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM