給定一個非空的整數數組,返回其中出現頻率前 k 高的元素。
示例 1:
輸入: nums = [1,1,1,2,2,3], k = 2
輸出: [1,2]
示例 2:
輸入: nums = [1], k = 1
輸出: [1]
代碼
class Solution {public int[] topKFrequent(int[] nums, int k) {Map<Integer,Integer>map=new HashMap<>();for(int c:nums) map.put(c,map.getOrDefault(c,0)+1);//用map存儲數字及其出現的次數int[][] temp=new int[map.keySet().size()][2];int i=0;for(int c:map.keySet())//轉變為二維數組{temp[i][0]=c;temp[i][1]=map.get(c);i++;}Arrays.sort(temp,(o1, o2) -> o2[1]-o1[1]);//排序int[] h=new int[k];for(i=0;i<k;i++) h[i]=temp[i][0];//截取結果return h;}
}