169 . Majority Element (Easy)
Description
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
Analysis
这道题给出来的函数参数是以向量表示的,也就是题目中要求进行操作的数组是以向量表示的,对于这道题,题目要求找出众数。
我所用的方法是将数组进行循环,同时利用num来记录数组中的数字的数目。采用的技巧就是,若num为0 ,则将当前遍历到的数组的数字为众数,否则则将当前数组数字与假定众数相比较,对num进行加减。当找到众数时返回结果。
Code
class Solution {
public:
int majorityElement(vector<int>& nums) {
//if(nums.size( ) == 1) return nums[0] ;
int result;
int num = 0;
for(int i = 0 ; i < nums.size() ; ++i){
if ( num == 0 ){
result = nums[i];
num++;
}
else{
if (result == nums[i]) ++num;
else num --;
if (num >= nums.size()/2+1) return result;
}
}
return result;
}
};