什么是队列
与栈相反,先进先出
实现
function Queue() {
const arr = [];
this.push = function (item) {
arr.push(item);
};
this.shift = function(){
return arr.shift()
}
}
例题
求区间为3000内的元素数量
3001 -〉[1,3001]
3002 -〉[2,3002]
function fn1(nums){
let arr = []
let count = []
for(let i = 0;i < nums.length;i++){
if(nums[i] == 0){
count.push(null)
continue;
}
if(nums[i] <= 3000){
arr.push(nums[i])
count.push(arr.length)
}else{
arr.push(nums[i])
let left = nums[i]-3000
// for(let j = 0;j<=arr.length;j++){
// if(arr[j] < left){
// arr.shift()
// }
// }
while(arr[0] < left){
arr.shift()
}
count.push(arr.length)
}
}
return count
}
console.log(fn1([0,1,100,3001,3002]));