【发布时间】:2017-02-17 19:20:49
【问题描述】:
我最近参加了 SDE 的 Amazon 面试。我被要求设计一个在O(1) 中执行push、pop 和min 的堆栈。
我得到了逻辑并实现了堆栈的推送。在实现新堆栈的推送时,我在给定堆栈和最小堆栈上调用了推送,它们是新堆栈的一部分。面试官告诉我,我不能那样做,因为 push 将是一个递归调用。我向他解释说,我们可以不同的命名,但他坚持将旧堆栈和新堆栈上的操作都称为推送。
我怎样才能达到同样的效果? (面试官看起来很刻薄,因为我的逻辑是正确的,他仍然告诉我由于上述原因我做错了)
【问题讨论】:
-
面试官看起来很刻薄 - 我非常怀疑面试官是刻薄。你的回答很可能是错误的,因为亚马逊不太可能让不理解他们所问问题的人采访你。我们看不到您使用非面向对象的语言编程,因为您在此处发布了零代码。
标签: algorithm data-structures stack