169. 多數(shù)元素

給定一個大小為 n 的數(shù)組,找到其中的多數(shù)元素。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大于 ? n/2 ? 的元素。

你可以假設數(shù)組是非空的,并且給定的數(shù)組總是存在多數(shù)元素。

示例 1:
輸入: [3,2,3]
輸出: 3

示例 2:
輸入: [2,2,1,1,1,2,2]
輸出: 2

3種方法:
1.hashmap
2.排序 ,取中間
3.摩爾排序法(這個為什么能成功呢? 因為數(shù)量多的總能打敗數(shù)量少的,多數(shù)元素的個數(shù)-少量元素的個數(shù)>=1,多數(shù)元素一換一少數(shù)元素,最終還是剩下多數(shù)的)

class Solution {
    public int majorityElement(int[] nums) {
        int cadidate = 0;
        int count = 0;
        for(int i = 0; i < nums.length; i++){
            if(count == 0){
                cadidate = nums[i];
            }
            count += (cadidate == nums[i]) ? 1 : -1;
        }
        return cadidate;
    }
}
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容