python - 提高简单推送弹出“堆栈”的性能
问题描述
我被要求在 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:])
所以我不确定为什么我弄错了..也许是由于推和流行?
解决方案
推荐阅读
- workflow - YOUTrack 工作流程因一个项目而失败
- java - 无法通过 Spring Boot 调用 https REST 端点
- json - 无法在 PySpark 中查询 JSON 制作的数据框列
- .htaccess - 需要正确的 htaccess 重定向语法
- python - 我可以使用 Numba 让这段 python 代码运行得更快吗?
- html - 而不是图标,它显示空白方块
- cerberus - 我如何做类型或类型。字符串或整数?
- c# - Winform 2019如何通过一系列内部方法更新进度条
- azure - Azure API 管理中的某些 API 未应用策略
- php - Angular 查询参数,例如 httpd_query_params