美文网首页
leetcode-933 Python解决

leetcode-933 Python解决

作者: 何几时 | 来源:发表于2021-04-11 22:56 被阅读0次

解法一:尝试用 list

如果是以列表来实现的话,会出现以下的结果

class RecentCounter:

    def __init__(self):
        self.q = []

    def ping(self, t: int) -> int:
        if len(self.q) > 0:
            head = self.q[-1]
            if (t - head) > 3000:
                self.q.remove(index=-1)

        self.q.append(t)
        return len(self.q)
image.png

🎍:为何有删除元素的操作,但是列表的元素数量却没有减少呢,是不是涉及底层的东西?

解法二:用 collections.deque()

class RecentCounter:

    def __init__(self):
        self.q = collections.deque()

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

        self.q.append(t)
        return len(self.q)

👌:搞定!

相关文章

网友评论

      本文标题:leetcode-933 Python解决

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