最近的请求次数

作者: _阿南_ | 来源:发表于2020-02-28 16:50 被阅读0次

题目:

写一个 RecentCounter 类来计算最近的请求。
它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。
返回从 3000 毫秒前到现在的 ping 数。
任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 ping。
保证每次对 ping 的调用都使用比之前更大的 t 值。
示例:
输入:inputs = ["RecentCounter","ping","ping","ping","ping"], inputs = [[],[1],[100],[3001],[3002]]
输出:[null,1,2,3,3]
提示:
每个测试用例最多调用 10000 次 ping。
每个测试用例会使用严格递增的 t 值来调用 ping。
每次调用 ping 都有 1 <= t <= 10^9。

题目的理解:

记录每次调用ping是的t值,然后返回在 [t - 3000, t] 中的个数。
开始使用filter来获取,计算结果是正确的,但是提交发现计算超时。
然后采用将不符合条件的值从数组中删除,继续使用filter来计算,还是失败。
最后采用了for循环则成功了,说明filter的计算效率不是很高啊。

python实现


class RecentCounter:

    def __init__(self):
        self.times = list()
        self.current = None

    def ping(self, t: int) -> int:
        self.times.append(t)
        self.current = t
        temp_arr = self.times.copy()
        
        for num in temp_arr:
            if (num < self.current - 3000) or (num > self.current):
                self.times.remove(num)
                continue
            
            break

        return len(self.times)

提交

有点差

感觉这成功不行啊,再想想办法。

// END 杭州的肉是真的贵,而且有时候买的肉质量又不行,太难了。

相关文章

网友评论

    本文标题:最近的请求次数

    本文链接:https://www.haomeiwen.com/subject/yiblhhtx.html