真是誤人子弟,leetcode155題官網的golang答案是錯誤的。
push方法的append操作,必然不能保證是o(1)的時間復雜度。
就這還是官網的標準答案,就這水平,😄
leetcode誤人子弟不是第一次了。光會刷算法,可惜水平還是這么次,代碼寫出來全部是錯誤的。
附上我的代碼:
type MinStack struct {MinValue [30000]intInnerStack [30000]inttopIndex int }func Constructor() MinStack {minStack := MinStack{topIndex: -1, MinValue: [30000]int{}, InnerStack: [30000]int{}}return minStack } func (this *MinStack) Push(val int) {this.InnerStack[this.topIndex+1] = valif this.topIndex == -1 || this.MinValue[this.topIndex] > val {this.MinValue[this.topIndex+1] = val} else {this.MinValue[this.topIndex+1] = this.MinValue[this.topIndex]}this.topIndex++ } func (this *MinStack) Pop() {this.topIndex-- } func (this *MinStack) Top() int {return this.InnerStack[this.topIndex] } func (this *MinStack) GetMin() int {return this.MinValue[this.topIndex] }