239. 滑动窗口最大值
function maxSlidingWindow(nums: number[], k: number): number[] {
const result = [];
const queue = [];
for (let i = 0; i < nums.length; i++) {
while (queue.length && nums[i] >= nums[queue[queue.length - 1]]) {
queue.pop();
}
queue.push(i);
if (queue[0] <= i - k) {
queue.shift();
}
if (i >= k - 1) {
result.push(nums[queue[0]]);
}
}
return result;
};
347. 前 K 个高频元素
function topKFrequent(nums: number[], k: number): number[] {
const map = new Map();
for (let num of nums) {
map.set(num, (map.get(num) || 0) + 1)
};
return [...map.entries()]
.sort((a, b) => b[1] - a[1])
.slice(0, k)
.map((item) => item[0]);
};