var KthLargest = function(k, nums) { this.nums = nums this.k = k this.stack = new Stack() for(let i = 0; i < nums.length; i++){ this.stack.add(nums[i]) if(this.stack.size() > k){ this.stack.delete() } } }; KthLargest.prototype.add = function(val) { this.stack.add(val) if(this.stack.size() > this.k){ this.stack.delete() } return this.stack.head() }; class Stack{ constructor(){ this.arr = [] } add(n){ let len = this.arr.length for(let i = 0; i < len; i++){ if(this.arr[i] > n){ this.arr.splice(i,0,n) return } } this.arr.push(n) } delete(){ return this.arr.shift() } size(){ return this.arr.length } head(){ return this.arr[0] } }