当前位置: 首页 > Web前端 > JavaScript

【算法】队列

时间:2023-03-27 15:06:24 JavaScript

队列是一种常用的数据结构。它最大的特点是先进先出,即先进入队列的元素先出来。对于滑动窗口的平均值,请实现以下类型MovingAverage来计算滑动窗口中所有数字的平均值。该类型的构造函数的参数决定了滑动窗口的大小。每次调用成员函数next时,都会向滑动窗口添加一个整数,并返回滑动窗口中所有数字的平均值。/***在这里初始化你的数据结构。*@param{number}size*/varMovingAverage=function(size){this.size=size;this.arr=[]this.sum=0};/***@param{number}val*@return{number}*/MovingAverage.prototype.next=function(val){this.arr.push(val)this.sum+=valif(this.arr.length>this.size){this.sum-=this.arr.shift()}returnthis.sum/this.arr.length};最近的请求数,请实现如下类型的RecentCounter,这是一个计数器,用于统计过去3000ms的请求数。该类型的构造函数RecentCounter初始化计数器,请求次数初始化为0;函数ping(intt)在时间t(t表示时间,单位为毫秒)添加一个新的请求,返回过去3000ms(时间范围为[t-3000,t])所有请求发生的次数。假设每次调用函数ping的参数t都大于上一次调用的参数值。varRecentCounter=function(){this.arr=[]};/***@param{number}t*@return{number}*/RecentCounter.prototype.ping=function(t){this.arr.push(t)while(this.arr.length>1&&this.arr[0]+3000