gpt4 book ai didi

algorithm - 在 Scala 中覆盖函数推送

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:03 26 4
gpt4 key购买 nike

题目来自cracking-coding-interview,题目3.2

Stack Min: How would you design a stack which, in addition to push and pop, has a function min which returns the minimum element? Push, pop and min should all operate in 0(1) time.

然后我写了下面的代码,但是push函数是错误的,因为类型不兼容,不确定问题所在,为什么pop是正确的?谢谢

import scala.collection.mutable.Stack

class StackMin extends Stack[Int] {
val minstack=new Stack[Int]

override def push(element: Int): Stack[Int]={
if (element<= min()){
minstack.push(element)
}
super.push(element)
}

override def pop(): Int={
val value=super.pop()
if(value==min())
minstack.pop()
value
}

def min():Int={
if(minstack.isEmpty)
Int.MaxValue
else minstack.top
}
}

最佳答案

聪明的解决方案。

push 方法的返回类型错误。您可以将其指定为 StackMin.this.type:

override def push(element: Int): StackMin.this.type = {

或者完全忽略它(让编译器推断它):

override def push(element: Int) = {

关于algorithm - 在 Scala 中覆盖函数推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40990943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com