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.
题目大意
给定一个数组,找这个数组中的主元素,主元素是元素出现次数大于⌊ n/2 ⌋的元素。
假设给定的数组非空,主元素都存在。
自己的解法
将数组进行排序,根据题意,那么中间的这个数就是 majority element
public int majorityElement(int[] nums) { |
别人的解法
【LeetCode-面试算法经典-Java 实现】【169-Majority Element(主元素)】
用一个标记 cnt 记录某个元素出现的次数,如果后面的元素和它相同就加一,有一个元素和他不相同就减一,当 cnt 小于等于 0 时重新记录新的元素。
public int majorityElement(int[] nums) { |