var MyCalendar = function() {
this.events=[]
}
/**
* @param {number} start
* @param {number} end
* @return {boolean}
*/
MyCalendar.prototype.book = function(start, end) {
let left = 0
let right = this.events.length
while (left < right) {
const mid = Math.floor((left + right) / 2)
const [e1, e2] = this.events[mid]
if (start >= e2) {
left = mid + 1
} else if (end <= e1) {
right = mid
} else {
return false
}
}
this.events.splice(left, 0, [start, end])
return true
}
var KthLargest = function(k, nums) {
this.idx=k
this.arr=[...nums]
};
KthLargest.prototype.add = function(val) {
this.arr.push(val)
this.arr.sort((a,b)=>b-a)
return this.arr[this.idx-1]
}
var topKFrequent = function(nums, k) {
let map=new Map()
for(let i of nums){
map.set(i,map.has(i)?map.get(i)+1:1)
}
let arr=Array.from(map.entries())
arr.sort((a,b)=>b[1]-a[1])
let res=[]
for(let i=0;i<k;i++){
res.push(arr[i][0])
}
return res
};