摩爾投票法適用於找出陣列中某個元素出現超過1/n(n<1且n!=0)次。借助leetcode的第169道題練習摩爾投票法
class
solution
int count =0;
//元素出現次數
int tempnum = nums[0]
;//當前元素
for(
int i =
0; i < nums.length ; i++
)return tempnum;
}}
以及leetcode229題,不過這個是要求為超過1/3,也就是說,出現的元素個數可能是0,1,2,如果出現3個,那就沒有所謂的眾數
以下實現是參考了leetcode乙個大神
class
solution
int count1 =0;
int count2 =0;
int tempnum1 = nums[0]
;int tempnum2 = nums[0]
;for
(int i =
0; i < nums.length ; i++
)else
if(tempnum2 ==nums[i]
)else
if(count1==0)
else
if(count2==0)
else
}//判斷所選出來的元素是否滿足大於1/3,例如[3,2,3],如果沒有設立判斷,很容易就輸出為[3,2]而且要注意的是1/3*length與length/3出來的結果是不一樣的
count1=0;
count2=0;
for(
int i =
0; i < nums.length; i++)if
(tempnum2==nums[i])}
if(count1>nums.length/3)
if(count2>nums.length/
3&& tempnum1 != tempnum2)
return tempnums;
}}
關於摩爾投票練習end。 LeetCode 刻意練習03 移除元素
題目 引數列表給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回值 移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。思路 遍歷陣列,如果遇到不為val的值則將其賦值給陣列第i元素,並且i 否則繼續遍歷...
leetcode筆記 1 17 摩爾投票,
陣列中佔比超過一半的元素稱之為主要元素。給定乙個整數陣列,找到它的主要元素。若沒有,返回 1。示例 1 輸入 1,2,5,9,5,9,5,5,5 輸出 5 示例 2 輸入 3,2 輸出 1 示例 3 輸入 2,2,1,1,1,2,2 輸出 2 說明 你有辦法在時間複雜度為 o n 空間複雜度為 o ...
CTF小練習 摩爾斯密碼
看到檔案後感覺是音訊隱寫用 steno後結果什麼也沒有得到。然後確定應該就是聽電報。後來發現那個ctftools 上下的集合包中其實有這個工具 開啟後看到這個還是很懵逼 200寬度的表示 50寬度的表示 距離50寬度的連讀,50寬度外的表示停頓 及前兩句為 和 對照摩爾斯密碼表 得thesecret...