为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第3天 数据结构之“队列”

标签:
JavaScript

课程名称:JavaScript版数据结构与算法
课程章节:第4章 数据结构之“队列”
主讲老师:lewis

课程内容:

今天学习的内容包括:
4-1 队列简介——JavaScript 中可以使用Array实现队列的所有功能,队列具有先进先出的数据特点。
4-2 什么场景用队列——生活和程序中使用到队列的地方。
4-3 LeetCode:933. 最近的请求次数——使用队列处理获取请求次数。
4-4 前端与队列:JS 异步中的任务队列——JavaScript 中 先处理宏任务,在处理微任务,然后放入任务队列执行。
4-5 队列-章节总结——队列特点总结。
4-6 【勤于思考,夯实学习成果】阶段思考题——根据学习完成对应作业。

课程收获:

队列和堆栈在 JavaScript 中都可以使用 Arrray 实现

const queue = []

queue.push(1)
queue.push(2)

console.log(queue.shift())
console.log(queue.shift())

队列的使用场景

1、生活中排队打饭
2、JavaScript 中宏任务的执行
3、聊天数据等应该也是使用队列进行处理

933. 最近的请求次数

这题按照之前做法我会使用for循环进行判断最终拿到满足的次数,这里使用队列,非常巧妙的获取了请求次数

var RecentCounter = function() {
    this.q = []
};

/** 
 * @param {number} t
 * @return {number}
 */
RecentCounter.prototype.ping = function(t) {
    this.q.push(t)
    while(this.q[0] < t - 3000){
        this.q.shift()
    }
    return this.q.length
};

JS 异步中的任务队列

先处理宏任务,在处理微任务,然后放入任务队列执行

setTimeout(()=>{
  console.log(1)
},0)
console.log(2)

这一题在老师讲解之前我以为会非常复杂,看完老师的操作后发现原来算法也可以这么简单的实现出来,算法真的让人着迷。对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

https://img1.sycdn.imooc.com//62ee76be0001788019200892.jpg


https://img1.sycdn.imooc.com//62ee781c0001e96a19200892.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消