多数元素—leetcode169
生活随笔
收集整理的這篇文章主要介紹了
多数元素—leetcode169
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個大小為 n 的數組,找到其中的多數元素。多數元素是指在數組中出現次數大于?? n/2 ??的元素。
你可以假設數組是非空的,并且給定的數組總是存在多數元素。
示例?1:
輸入: [3,2,3]
輸出: 3
示例?2:
輸入: [2,2,1,1,1,2,2]
輸出: 2
思路:摩爾投票法
初始化res為任意值,N=0
遍歷數組,當前元素為xxx:
如果N=0,令res=xxx,N=1
如果xxx=res,則N+1
如果xxx!=res,則N-1
最終res就是眾數
因為眾數的數量大于其他任何數,所以無論怎么-1,眾數的N總不為0
?
class Solution { public:int majorityElement(vector<int>& nums) {int n = nums.size();int N=0,res;for(int i=0;i<n;++i){if(N==0)res = nums[i];if(res==nums[i])N++;elseN--;}return res;} };?
總結
以上是生活随笔為你收集整理的多数元素—leetcode169的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最小栈—leetcode155
- 下一篇: 打家劫舍—leetcode198