前 K 个高频元素-中等
难度:中等
题目描述:
给定一个非空的整数数组,返回其中出现频率前 **_k _**高的元素。
示例:
输入: (nums = [1, 1, 1, 2, 2, 3]), (k = 2);
输出: [1, 2];
1
2
2
解题思路:
var topKFrequent = function (nums, k) {
let i = 0;
let obj = {};
let arr = [];
while (i < nums.length) {
if (obj[nums[i]]) {
obj[nums[i]] = obj[nums[i]] + 1;
} else {
obj[nums[i]] = 1;
arr.push(nums[i]);
}
i++;
}
arr.sort((a, b) => {
return obj[b] - obj[a];
});
return arr.splice(0, k);
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18