课程名称: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)
这一题在老师讲解之前我以为会非常复杂,看完老师的操作后发现原来算法也可以这么简单的实现出来,算法真的让人着迷。对自己说一句,加油😀~
坚持打卡,坚持学习!明天见💪~