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