[LeetCode] 933、最近的请求次数

题目描述

写一个 RecentCounter 类来计算最近的请求。

它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。

返回从 3000 毫秒前到现在的 ping 数。

任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 ping。

示例:

输入:inputs = ["RecentCounter","ping","ping","ping","ping"], 
     inputs = [[],[1],[100],[3001],[3002]]
输出:[null,1,2,3,3]

解题思路

队列题目,因为题设要求数据先进先出,理解题意之后就是个简单题。

参考代码

class RecentCounter {
public:
    RecentCounter() {
        // nothing
    }
    
    int ping(int t) {
        q.push(t);
        while(q.front() < t - 3000)
            q.pop();
        return q.size();
    }
    
private:
    queue<int> q;
};

/**
 * Your RecentCounter object will be instantiated and called as such:
 * RecentCounter* obj = new RecentCounter();
 * int param_1 = obj->ping(t);
 */
发布了390 篇原创文章 · 获赞 576 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/ft_sunshine/article/details/103891277