日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

投票算法

發(fā)布時(shí)間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 投票算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

投票算法主要用于解決數(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的。
核心代碼如下:

public static int majorityElement(int[] nums){//投票算法int count = 1;int temp = nums[0];for(int i = 1;i < nums.length;i++){if(temp == nums[i]){count++;}else {count--;}if(count == 0){temp = nums[i];count = 1;}}

總結(jié)

以上是生活随笔為你收集整理的投票算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。