继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

风吹尘
关注TA
已关注
手记 61
粉丝 9
获赞 1

课程名称: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)

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

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

http://img.mukewang.com/62ee76be0001788019200892.jpg


http://img.mukewang.com/62ee781c0001e96a19200892.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP