347.前-k-个高频元素

时游小于 1 分钟LeetCode

347.前-k-个高频元素

/*
 * @lc app=leetcode.cn id=347 lang=typescript
 *
 * [347] 前 K 个高频元素
 */

// @lc code=start
function topKFrequent(nums: number[], k: number): number[] {
	// 创建buckets
	let buckets: {
		[key: string]: number;
	} = {};
	for (let i = 0; i < nums.length; i++) {
		if (buckets[nums[i]] === undefined) {
			buckets[nums[i]] = 1;
		} else {
			buckets[nums[i]]++;
		}
	}
	let counts: number[] = [];
	Object.keys(buckets).map((key: string) => {
		counts.push(buckets[key]);
	});
	let res = counts.sort((a, b) => b - a).slice(0, k);
	let final: number[] = [];
	Object.keys(buckets).map((key: string) => {
		if (res.includes(buckets[key])) {
			final.push(Number(key));
		}
	});
	return final;
}

console.log(topKFrequent([1, 1, 1, 2, 2, 3], 2));

// @lc code=end

上次编辑于:
贡献者: 15327360835
Loading...