2026年--Lc331-933. 最近的请求次数(队列)--java版

1.题目


2.思路

首先这道题,需要判断当前t时间点上request请求数是不是在区间[t-300,t]中,并统计该区间有多少个请求。

每次来了一个时间点 t(毫秒),返回最近 3000 毫秒内(包含端点)一共有多少次请求。严格定义是:返回所有满足t−3000≤x≤t的请求时间 x 的数量。(左闭右闭)


3.代码实现

java 复制代码
class RecentCounter {
    Queue<Integer> queue;

    public RecentCounter() {
       queue=new ArrayDeque<Integer>();
        
    }
    
    public int ping(int t) {
//         queue.offer(t) / queue.add(t)(你说的 "push(t)" 一般指这个)

// 作用:把元素 t 放进队列尾部(入队)

// 常见写法:

// queue.offer(t)(更推荐,失败返回 false)

// queue.add(t)(失败会抛异常)
    queue.offer(t);
//     queue.peek():查看队头元素(最早的请求时间),但不删除。 t - 3000:当前时间 t 的窗口左边界(最近 3000ms 的起点)。如果队头时间 严格小于 左边界,说明它落在窗口外
    while(queue.peek()<t-3000)
    {
     queue.poll();
    }
    return queue.size();
    }
      
}

/**
 * Your RecentCounter object will be instantiated and called as such:
 * RecentCounter obj = new RecentCounter();
 * int param_1 = obj.ping(t);
 */
相关推荐
SimonKing几秒前
基于Netty的TCP协议的Socket服务端
java·后端·程序员
予枫的编程笔记几秒前
Elasticsearch深度搜索与查询DSL实战:精准定位数据的核心技法
java·大数据·人工智能·elasticsearch·搜索引擎·全文检索
荒诞硬汉4 分钟前
面向对象(三)
java·开发语言
柒.梧.7 分钟前
Spring Boot集成JWT Token实现认证授权完整实践
java·spring boot·后端
白露与泡影7 分钟前
放弃 IntelliJ IDEA,转 VS Code 了。。
java·ide·intellij-idea
迷雾骑士9 分钟前
IDEA中将项目提交到Gitee仓库
java·gitee·intellij-idea
菜鸟233号11 分钟前
力扣416 分割等和子串 java实现
java·数据结构·算法·leetcode
奔波霸的伶俐虫14 分钟前
redisTemplate.opsForList()里面方法怎么用
java·开发语言·数据库·python·sql
自在极意功。16 分钟前
简单介绍SpringAOP
java·spring·aop思想
__万波__17 分钟前
二十三种设计模式(二十三)--责任链模式
java·设计模式·责任链模式