Question
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.
Example:
Input: [3,2,3]
Output: 3
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public int majorityElement(int[] nums) { if (nums == null || nums.length == 0) { return -1; } int count = 0, curMajority = 0; for (int num : nums) { if (count == 0) { curMajority = num; } if (num == curMajority) { count++; }else { count--; } } return curMajority; }
|