LeetCode 169. Majority Element (Easy)

来源:互联网 发布:js window 全局变量 编辑:程序博客网 时间:2024/05/19 13:16

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;    }};
0 0
原创粉丝点击