日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

LeetCode简单题之最近的请求次数

發布時間:2023/11/28 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode简单题之最近的请求次数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

寫一個 RecentCounter 類來計算特定時間范圍內最近的請求。
請你實現 RecentCounter 類:
RecentCounter() 初始化計數器,請求數為 0 。
int ping(int t) 在時間 t 添加一個新請求,其中 t 表示以毫秒為單位的某個時間,并返回過去 3000 毫秒內發生的所有請求數(包括新請求)。確切地說,返回在 [t-3000, t] 內發生的請求數。
保證 每次對 ping 的調用都使用比之前更大的 t 值。
示例 1:
輸入:
[“RecentCounter”, “ping”, “ping”, “ping”, “ping”]
[[], [1], [100], [3001], [3002]]
輸出:
[null, 1, 2, 3, 3]
解釋:
RecentCounter recentCounter = new RecentCounter();
recentCounter.ping(1); // requests = [1],范圍是 [-2999,1],返回 1
recentCounter.ping(100); // requests = [1, 100],范圍是 [-2900,100],返回 2
recentCounter.ping(3001); // requests = [1, 100, 3001],范圍是 [1,3001],返回 3
recentCounter.ping(3002); // requests = [1, 100, 3001, 3002],范圍是 [2,3002],返回 3
提示:
1 <= t <= 10^9
保證每次對 ping 調用所使用的 t 值都 嚴格遞增
至多調用 ping 方法 10^4 次
來源:力扣(LeetCode)

解題思路

??返回的次數都是每次訪問時間前3000ms內的請求次數,因此我們可以做一個隊列存儲當前請求以及前3000ms內的請求記錄,每次請求返回的時候直接返回隊列的長度即可。

class RecentCounter:def __init__(self):self.temp=[]  #請求存儲隊列def ping(self, t: int) -> int:self.temp.append(t)while self.temp[0]+3000<t:del self.temp[0]  #不在當前請求前3000ms的請求出隊return len(self.temp)# Your RecentCounter object will be instantiated and called as such:
# obj = RecentCounter()
# param_1 = obj.ping(t)

總結

以上是生活随笔為你收集整理的LeetCode简单题之最近的请求次数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。