我被要求对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:])
所以我不确定为什么我弄错了..也许是由于推动和弹出?