Day82:最近調(diào)用次數(shù)

寫(xiě)一個(gè) RecentCounter 類(lèi)來(lái)計(jì)算最近的請(qǐng)求。

它只有一個(gè)方法:ping(int t),其中 t 代表以毫秒為單位的某個(gè)時(shí)間。

返回從 3000 毫秒前到現(xiàn)在的 ping 數(shù)。

任何處于 [t - 3000, t] 時(shí)間范圍之內(nèi)的 ping 都將會(huì)被計(jì)算在內(nèi),包括當(dāng)前(指 t 時(shí)刻)的

ping。

保證每次對(duì) ping 的調(diào)用都使用比之前更大的 t 值。

示例:

輸入:inputs = ["RecentCounter","ping","ping","ping","ping"], inputs =

[[],[1],[100],[3001],[3002]]

輸出:[null,1,2,3,3]

提示:

每個(gè)測(cè)試用例最多調(diào)用 10000 次 ping。

每個(gè)測(cè)試用例會(huì)使用嚴(yán)格遞增的 t 值來(lái)調(diào)用 ping。

每次調(diào)用 ping 都有 1 <= t <= 10^9。

來(lái)源:力扣(LeetCode)

鏈接:https://leetcode-cn.com/problems/number-of-recent-calls

著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

leecode討論區(qū)很多人都說(shuō)看不明白題目,我是從一個(gè)題解里看到以下內(nèi)容,可以比較好地說(shuō)明要做的事:

首先忽略inputs = [“RecentCounter”,”ping”,”ping”,”ping”,”ping”],這只是表頭,類(lèi)似于csv文件的第一行
從第二個(gè)input開(kāi)始看:
再忽略[]和第一個(gè)null
第一個(gè)t,1ms, 在3000ms內(nèi),返回1
第二個(gè)t, 100ms,在3000ms內(nèi),這時(shí)共有[1,2],2個(gè)元素,返回2
第三個(gè)t, 3001ms, 前面的1ms, 100ms,與這個(gè)3001ms的“距離”都在3000ms內(nèi),需要計(jì)算的,有效元素為[1,100,3001], 所以返回3
第四個(gè)t, 3002ms,前面的1ms,“距離”當(dāng)前的3002ms,已經(jīng)超過(guò)3000ms了,丟棄
前面的100ms,“距離”當(dāng)前的3002ms,“相距”2902ms,在3000ms內(nèi),需要計(jì)算的,有效元素為[100,3001,3002]共三個(gè)元素, 所以返回3

from collections import deque
class RecentCounter:
    def __init__(self):
        self.q = deque()

    def ping(self, t: int) -> int:
        self.q.append(t)
        while t-self.q[0] > 3000:
            self.q.popleft()
        return len(self.q)


# Your RecentCounter object will be instantiated and called as such:
# obj = RecentCounter()
# param_1 = obj.ping(t)

def test_RecentCounter():
    obj = RecentCounter()
    obj.ping(1) == 1
    obj.ping(100) == 2
    obj.ping(3001) == 3
    obj.ping(3002) == 3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容