投票算法
投票算法主要用于解決數組中出現次數最多的元素問題。
投票算法的理解主要是記住數組里只有兩種元素:我和我之外的元素。
比如:有個數組{0,1,2,1,2,1}
用temp存儲出現次數最多的元素,count計數。
1.首先用temp存儲0,count賦初值為1。
2.開始從第二個元素遍歷,此時1不等于0,那么就給count–,同時當count為0時將當前遍歷的元素賦值給temp,將count++。(為什么要如此操作,因為:遍歷到1時,1和0都出現了一次,那么我們可以認為0可能沒有1出現的次數多,于是我們就可以將1賦值給temp,將1當作出現次數最多的數字,同時將count++變為1。)
3.繼續遍歷到2,參照第2步,將2賦值給temp,count繼續初始化為1。
4.遍歷到1,將1賦值給temp,count初始化為1。
5.遍歷到2…
6.遍歷到1,將1賦值給temp,count初始化為1。
到此遍歷完畢我們將1輸出,count實際上是不同元素出現次數的一個差值,出現次數最多的的元素其最后count必然是大于0的。
核心代碼如下:
總結
- 上一篇: C# 版 EXE捆绑器
- 下一篇: ActiveMQ 之安全认证