提高简单的推送弹出“堆栈”的性能

时间:2018-11-12 02:29:33

标签: python performance

我被要求对Hackerrank进行访谈,以实现一个堆栈。堆栈的一种方法是'incr',它在堆栈元素的底部增加一个值。尽管我正确的基本测试用例,但其中一些“超时”。

class Stack:
    def __init__(self):
        self.stack = []
    def push(self, element):
        self.stack.append(element)
    def pop(self):
        if self.stack:
            self.stack.pop()
    def incr(self, num_elements, value):
        '''Increments bottom num_elements by value'''
        for idx in range(num_elements):
            self.stack[idx] += value
    def print_top(self):
        print(self.stack[-1])

我猜我的实现太慢了。我不确定如何使其更快。我试图用下面的列表表示法替换“ incr”,但是当我为一百万个元素计时时,它并没有太大的区别。

[x + value for x in self.stack[:num_elements]].extend(self.stack[num_elements:])

所以我不确定为什么我弄错了..也许是由于推动和弹出?

0 个答案:

没有答案