Js中队列

1.什么是队列?

  • 队列是一种先进先出的数据结构
  • Js中没有队列,但是可以用Array来实现队列的所有功能

在这里插入图片描述# 2.常用方法

  • push:新元素入队
  • shift:队头元素出队,并给返回值
  • length:返回队的长度

3.使用示例

//初始化一个队
const queue = [];
//入队
queue.push(1);      //queue = [1]
queue.push(2);      //queue = [2]
const item1 = queue.shift();        //queue = [2] item1 = 1
const item2 = queue.shift();        //queue = [] item1 = 1 item2 = 2

4.LeetCode

接下来使用队列这个数组结构来刷LeetCode有关队列的题目,巩固提升对队列的了解。

题号933.最近的请求次数(简单)

题目要求:
在这里插入图片描述在这里插入图片描述解题思路:

  1. 由题目易知满足先进先出规则,使用队列
  2. 定义RecentCounter类中维护一个队列
  3. 小于t-3000的请求全部出队
    编写代码
var RecentCounter = function() {
    //定义一个RecentCounter类,类中有一个空队列
    this.queue = [];
};

/** 
 * @param {number} t
 * @return {number}
 */
 //类中再增加一个ping方法
RecentCounter.prototype.ping = function(t) {
    this.queue.push(t);
    while(this.queue[0] < t - 3000) { 
        this.queue.shift();
    }
    return this.queue.length;
};
/**
 * Your RecentCounter object will be instantiated and called as such:
 * var obj = new RecentCounter()
 * var param_1 = obj.ping(t)
 */

复杂度分析

  • 时间复杂度:O(n),n是ping的次数
  • 空间复杂度:O(W),其中W=3000是队列中最多存储的ping的记录数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#队列可以通过System.Collections命名空间Queue类来实现。队列是一种先进先出(FIFO)的数据结构,可以在队列的末尾添加元素,从队列的开头移除元素。以下是一个简单的示例代码: ``` using System; using System.Collections; class Program { static void Main(string[] args) { Queue myQueue = new Queue(); myQueue.Enqueue("apple"); myQueue.Enqueue("banana"); myQueue.Enqueue("orange"); Console.WriteLine($"队列的元素个数:{myQueue.Count}"); // 遍历队列 foreach (string fruit in myQueue) { Console.WriteLine(fruit); } // 移除队列的第一个元素 string firstFruit = (string)myQueue.Dequeue(); Console.WriteLine($"移除的元素是:{firstFruit}"); Console.WriteLine($"队列的元素个数:{myQueue.Count}"); // 查看队列的第一个元素 string nextFruit = (string)myQueue.Peek(); Console.WriteLine($"队列的下一个元素是:{nextFruit}"); } } ``` 运行结果: ``` 队列的元素个数:3 apple banana orange 移除的元素是:apple 队列的元素个数:2 队列的下一个元素是:banana ``` 在上面的示例代码,首先创建了一个空的队列`myQueue`,然后使用`Enqueue`方法向队列添加元素。使用`Count`属性可以获取队列的元素个数。使用`foreach`循环可以遍历整个队列。使用`Dequeue`方法可以移除队列的第一个元素,并将其返回。使用`Peek`方法可以查看队列的下一个元素,但不会将其移除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值