var maxSlidingWindow = function (nums, k) {
class MonoQueue {
queue;
constructor() {
this.queue = [];
}
enqueue(value) {
let back = this.queue[this.queue.length - 1];
while (back !== undefined && back < value) {
this.queue.pop();
back = this.queue[this.queue.length - 1];
}
this.queue.push(value);
}
dequeue(value) {
let front = this.front();
if (front === value) {
this.queue.shift();
}
}
front() {
return this.queue[0];
}
}
let helperQueue = new MonoQueue();
let i = 0, j = 0;
let resArr = [];
while (j < k) {
helperQueue.enqueue(nums[j++]);
}
resArr.push(helperQueue.front());
while (j < nums.length) {
helperQueue.enqueue(nums[j]);
helperQueue.dequeue(nums[i]);
resArr.push(helperQueue.front());
i++, j++;
}
return resArr;
};
var topKFrequent = function(nums, k) {
let hashMap = new Map()
let res = []
for(let i =0;i<nums.length;i++){
if(hashMap.has(nums[i])){
hashMap.set(nums[i],hashMap.get(nums[i])+1)
}else{
hashMap.set(nums[i],1)
}
}
let sortArray = Array.from(hashMap).sort((a, b) => b[1] - a[1]);
for(let i = 0; i < k; i++) {
res.push(sortArray[i][0]);
}
return res;
};