队列
时间复杂度
队列常用操作
创建
用链表LinkedList来创建队列,因为链表中的插入和删除都是非常迅速的,在队列中我们常用的操作也是边往里面加数据边删除。
添加
获取
获取即将出队的元素(最早进来的元素)
peek函数
删除
poll函数
判断是否为空
判断队列里面还有没有元素
长度
遍历队列
边删除边遍历
时间复杂度为o(N),图片里面写错了。
力扣933
题目
这道题说人话就是:t代表这个员工的工号,每次新员工t加入q公司前先把工号小于t -3000的老家伙都辞退,然后再让t入职,统计q公司现有几个员工.
第一次为空,输出为空
第二次时间t=1,在3000ms以内,所以请求次数为1(计算长度)
第二次时间t=100,在3000ms以内,请求次数为上一次加这一次,为2(计算长度)
第三次时间t=3001,3001-1=3000ms以内,这次加上次加上上次,为3(计算长度)
第四次时间t=3002,3002-第一次时间1=3001,超过了3000,所以这次加上次加上上次为3,即把第一个t=1删掉,计算长度为3