题目描述:
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.
解题思路:
每找出两个不同的element,就成对删除即count--,最终剩下的一定就是所求的。时间复杂度:O(n)。
代码如下:
public class Solution { public int majorityElement(int[] nums) { int major = 0; int count = 0; for(int i = 0; i < nums.length; i++){ if(count == 0){ major = nums[i]; count++; }else{ if(nums[i] == major) count++; else count--; if(count >= nums.length / 2 + 1) return major; } } return major; } }