題目
給定一個大小爲 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;
}
}