LeetCode刷題:多數元素

題目

給定一個大小爲 n 的數組,找到其中的多數元素。多數元素是指在數組中出現次數大於 ⌊ n/2 ⌋ 的元素。

你可以假設數組是非空的,並且給定的數組總是存在多數元素。

示例 1:

輸入: [3,2,3]
輸出: 3

示例 2:

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

題解
思路:
把不同的數字看作敵人,打一架則失去一個體力點。
時間和內存消耗爲:
在這裏插入圖片描述
代碼爲:

	class Solution {
    public int majorityElement(int[] nums) {
        int ans=nums[0];
        int rec=1;
        for(int i=1;i<nums.length;i++){
            if(ans==nums[i]){
                rec++;
            }else{
                rec--;
                if(rec==0){
                    ans=nums[i+1];
                }
            }
        }
        return ans;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章