LeetCode - Majority Element

Majority Element

2015.1.23 17:46

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.

Solution:

  This is FAQ, you know. See the code below.

  Total time complexity is O(n). Space complexity is O(1).

Accepted code:

 1 // 1AC, old

 2 class Solution {

 3 public:

 4     int majorityElement(vector<int> &num) {

 5         int val, cnt;

 6         int n, i;

 7         

 8         n = (int)num.size();

 9         val = num[0];

10         cnt = 1;

11         

12         for (i = 1; i < n; ++i) {

13             if (val == num[i]) {

14                 ++cnt;

15             } else if (cnt > 1) {

16                 --cnt;

17             } else {

18                 val = num[i];

19                 cnt = 1;

20             }

21         }

22         

23         return val;

24     }

25 };

 

你可能感兴趣的:(LeetCode)