队列
写在前面:还没想好写啥。
1.什么是队列?
- 一个先进先出的数据结构
- javascript中其实是没有队列的,但是你可以用Array来实现其所有功能 (push入队 shift出队)
2.有什么用?
- 没用!!!
- 解决诸如 食堂排队打饭 最近请求次数
不扯,直接干
LeetCode#933 最近的请求次数
leetcode的题目描述有些晦涩难懂,我有必要翻译成人话;
题目大意:现在你有个请求队列,t毫秒后你将push进去一个请求,t-3000以前的请求将被干掉,求现在队列里有几个请求?
或者你这么理解:t代表这个员工的工号,每次新员工t加入q公司前先把工号小于t -3000的老家伙都辞退,然后再让t入职,统计q公司现有几个员工
class RecentCounter{
constructor() {
this.q = [];
}
ping (t){
this.q.push(t); // 入队
while (this.q[0] < t - 3000){
this.q.shift() // 出队
}
return this.q.length;
}
}
不会有童鞋看不懂es6写法吧,不会吧,不会吧,啊sir
好的吧,es5写法参上
var RecentCount = function(){
this.q = [];
};
RecentCount.prototype.ping = function(t) {
this.q.push(t);
while(this.q[0] < t - 3000) {
this.q.shift();
}
return this.q.length;
}
javascript版数据结构与算法将系列 持续更新中
网友评论