LeetCode-169找出数组中出现次数大于? n/2 ?次的数
Posted 当代英雄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-169找出数组中出现次数大于? n/2 ?次的数相关的知识,希望对你有一定的参考价值。
// method 1 public static int majorityElement_1(int[] num) { int major=num[0], count = 1; for (int i=1; i<num.length;i++) { if (count == 0) { count++; major=num[i]; } else if (major == num[i]) { count++; } else count--; } return major; } // method 2 public static int majorityElement_2(int[] nums) { Arrays.sort(nums); return nums[nums.length/2]; } // method 3 public static int majorityElement_3(int[] nums) { Map<Integer, Integer> myMap = new HashMap<Integer, Integer>(); //Hashtable<Integer, Integer> myMap = new Hashtable<Integer, Integer>(); int ret=0; for (int num: nums) { if (!myMap.containsKey(num)) myMap.put(num, 1); else myMap.put(num, myMap.get(num)+1); if (myMap.get(num)>nums.length/2) { ret = num; break; } } return ret; }
以上是关于LeetCode-169找出数组中出现次数大于? n/2 ?次的数的主要内容,如果未能解决你的问题,请参考以下文章