题目
思路
我相信在看到统计次数的时候大家可能会想到类似于桶排序的算法,没错,但这个桶,我们需要哈希表去实现,因为我们要求只是统计数组中元素出现的次数。
所以我们创建一个哈希表,把Value用来计数当桶,所以我们遍历数组,
判断这个元素是否已经是Key了,如果是,那么put(Key,get()+1)此时对这个元素的计数+1;
如果不是那么就put(Key,1);
我们创建完哈希表之后,我们对哈希表进行遍历,把Value最大的数的节点的Key返回即可。
时间复杂度O(n);
空间复杂度O(k);k为数组的出现的数字的个数,我们创建了K小的哈希表
public static int majorityElement(int[] nums) {
if(nums.length < 1 || nums == null) return -1;
if(nums.length < 3) return nums[0];
HashMap hashmap = new HashMap<Integer,Integer>