目錄
題目:劍指 Offer 09. 用兩個棧實現(xiàn)隊列 - 力扣(LeetCode)
題目的接口:
解題思路:
代碼:
過啦!??!
題目:劍指 Offer 10- I. 斐波那契數(shù)列 - 力扣(LeetCode)
題目的接口:
解題思路:
代碼:
過啦!?。?/p>
寫在最后:
題目:劍指 Offer 09. 用兩個棧實現(xiàn)隊列 - 力扣(LeetCode)
題目的接口:
type CQueue struct {
}
func Constructor() CQueue {
}
func (this *CQueue) AppendTail(value int) {
}
func (this *CQueue) DeleteHead() int {
}
/**
* Your CQueue object will be instantiated and called as such:
* obj := Constructor();
* obj.AppendTail(value);
* param_2 := obj.DeleteHead();
*/
解題思路:
這道題我用 C++ 寫的時候是比較簡單順手的,用 STL 可以直接調(diào)庫調(diào)兩個棧出來,然后一個作為 inStack,一個作為 OutStack,存入的時候存 inStack,出棧的時候,將 inStack 放進(jìn) OutStack 里面,再刪除 OutStack 的內(nèi)容就可以了,
而現(xiàn)在用 golang 來刷這道題,思路不難,主要是怎么樣優(yōu)雅地實現(xiàn)棧結(jié)構(gòu)呢?切片的特性還是很好用的,可以說這下又學(xué)會了一個操作,怎么不用下標(biāo)倒序遍歷切片:
this.outStack = append(this.outStack, this.inStack[len(this.inStack)-1])
this.inStack = this.inStack[:len(this.inStack)-1]
不斷變小 + 不斷取最后一個元素就行了,真是妙啊。具體代碼如下:?
代碼:
type CQueue struct {
inStack []int
outStack []int
}
func Constructor() CQueue {
return CQueue{}
}
func (this *CQueue) AppendTail(value int) {
this.inStack = append(this.inStack, value)
}
func (this *CQueue) DeleteHead() int {
if len(this.outStack) == 0 {
if len(this.inStack) == 0 {return -1}
this.in2out()
}
value := this.outStack[len(this.outStack)-1]
this.outStack = this.outStack[:len(this.outStack)-1]
return value
}
func (this *CQueue) in2out() {
for len(this.inStack) > 0 {
this.outStack = append(this.outStack, this.inStack[len(this.inStack)-1])
this.inStack = this.inStack[:len(this.inStack)-1]
}
}
/**
* Your CQueue object will be instantiated and called as such:
* obj := Constructor();
* obj.AppendTail(value);
* param_2 := obj.DeleteHead();
*/
過啦?。。?/h3>
題目:劍指 Offer 10- I. 斐波那契數(shù)列 - 力扣(LeetCode)
題目的接口:
func fib(n int) int {
}
解題思路:
這道題就是非常經(jīng)典的動態(tài)規(guī)劃入門題目,我這里就直接做了,其實還可以進(jìn)行空間的優(yōu)化,但是我覺得沒有很大的必要,簡單的題沒必要,難的題你也優(yōu)化不出來說實話。
代碼:
func fib(n int) int {
if n <= 1 {return n}
dp := make([]int, 101)
dp[0] = 0
dp[1] = 1
for i := 2; i <= 100; i++ {
dp[i] = (dp[i-1] + dp[i-2]) % (1e9 + 7)
}
return dp[n]
}
過啦!??!
寫在最后:
以上就是本篇文章的內(nèi)容了,感謝你的閱讀。
如果感到有所收獲的話可以給博主點一個贊哦。文章來源:http://www.zghlxwxcb.cn/news/detail-692821.html
如果文章內(nèi)容有遺漏或者錯誤的地方歡迎私信博主或者在評論區(qū)指出~文章來源地址http://www.zghlxwxcb.cn/news/detail-692821.html
到了這里,關(guān)于【LeetCode】劍指 Offer <二刷>(4)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!