国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LeetCode】劍指 Offer <二刷>(4)

這篇具有很好參考價值的文章主要介紹了【LeetCode】劍指 Offer <二刷>(4)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

題目:劍指 Offer 09. 用兩個棧實現(xiàn)隊列 - 力扣(LeetCode)

題目的接口:

解題思路:

代碼:

過啦!??!

題目:劍指 Offer 10- I. 斐波那契數(shù)列 - 力扣(LeetCode)

題目的接口:

解題思路:

代碼:

過啦!?。?/p>

寫在最后:


題目:劍指 Offer 09. 用兩個棧實現(xiàn)隊列 - 力扣(LeetCode)

【LeetCode】劍指 Offer <二刷>(4),38 天二刷劍指 Offer,leetcode,算法,職場和發(fā)展

題目的接口:

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>

【LeetCode】劍指 Offer <二刷>(4),38 天二刷劍指 Offer,leetcode,算法,職場和發(fā)展

題目:劍指 Offer 10- I. 斐波那契數(shù)列 - 力扣(LeetCode)

【LeetCode】劍指 Offer <二刷>(4),38 天二刷劍指 Offer,leetcode,算法,職場和發(fā)展

題目的接口:

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] 
}

過啦!??!

【LeetCode】劍指 Offer <二刷>(4),38 天二刷劍指 Offer,leetcode,算法,職場和發(fā)展

寫在最后:

以上就是本篇文章的內(nèi)容了,感謝你的閱讀。

如果感到有所收獲的話可以給博主點一個哦。

如果文章內(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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【LeetCode】劍指 Offer <二刷>(5)

    【LeetCode】劍指 Offer <二刷>(5)

    目錄 題目:劍指 Offer 10- II. 青蛙跳臺階問題 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦!?。?題目:劍指 Offer 11. 旋轉(zhuǎn)數(shù)組的最小數(shù)字 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦!?。?寫在最后: 這道題乍一看好像沒什么思路,但是我們不妨把題

    2024年02月09日
    瀏覽(15)
  • (搜索) 劍指 Offer 38. 字符串的排列 ——【Leetcode每日一題】

    (搜索) 劍指 Offer 38. 字符串的排列 ——【Leetcode每日一題】

    難度:中等 輸入一個字符串,打印出該字符串中字符的所有排列。 你可以以任意順序返回這個字符串?dāng)?shù)組,但里面 不能有重復(fù)元素 。 示例: 輸入:s = “abc” 輸出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”] 限制 : 1 = s 的長度 = 8 ??思路:回溯 可以直接 暴力窮舉 ,但

    2024年02月12日
    瀏覽(29)
  • 【leetcode刷題之路】劍指Offer(3)——搜索與回溯算法

    7 搜索與回溯算法 7.1 【BFS】劍指 Offer 32 - I - 從上到下打印二叉樹 https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/ ??這里借助隊列來實現(xiàn)廣度優(yōu)先遍歷,由于需要訪問每一層的節(jié)點,而且這一層訪問才可以訪問下一層,所以可以考慮隊列的先進(jìn)先出,先把每一層的節(jié)

    2024年02月13日
    瀏覽(47)
  • 【leetcode刷題之路】劍指Offer(4)——分治+排序算法+動態(tài)規(guī)劃

    8 分治算法 8.1 【遞歸】劍指 Offer 07 - 重建二叉樹 https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/ ??前序遍歷是根左右,中序遍歷是左根右,這也就意味著前序遍歷的第一個節(jié)點是整棵樹的根節(jié)點,順著這個節(jié)點找到它在中序遍歷中的位置,即為in_root,那么in_root左邊的都在左子

    2024年02月11日
    瀏覽(23)
  • 【算法】雙指針——leetcode盛最多水的容器、劍指Offer57和為s的兩個數(shù)字

    【算法】雙指針——leetcode盛最多水的容器、劍指Offer57和為s的兩個數(shù)字

    盛水最多的容器 (1)暴力解法 ??算法思路:我們枚舉出所有的容器大小,取最大值即可。 ??容器容積的計算方式: ??設(shè)兩指針 i , j ,分別指向水槽板的最左端以及最右端,此時容器的寬度為 j - i 。由于容器的高度由兩板中的較短的板決定,因此可得容積公式 :

    2024年02月13日
    瀏覽(24)
  • 【LeetCode】劍指 Offer(27)

    【LeetCode】劍指 Offer(27)

    目錄 題目:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 那么這道題呢, 如果只是作為一道題,或者說筆試題, 我們當(dāng)然是二話不說直接暴力拿下, 來看代碼: 是的,就是這么簡單,三行代碼暴力拿下

    2023年04月13日
    瀏覽(22)
  • 【LeetCode】劍指 Offer(21)

    【LeetCode】劍指 Offer(21)

    目錄 題目:劍指 Offer 39. 數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù)字 - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 題目:劍指 Offer 40. 最小的k個數(shù) - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦!?。?寫在最后: 這道題,我的思路是直接排序, 然后返回中間

    2023年04月10日
    瀏覽(29)
  • 【LeetCode】劍指 Offer(28)

    【LeetCode】劍指 Offer(28)

    目錄 題目:劍指 Offer 54. 二叉搜索樹的第k大節(jié)點 - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦!??! 題目:劍指 Offer 55 - I. 二叉樹的深度 - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦!??! 題目:劍指 Offer 55 - II. 平衡二叉樹 - 力扣(Leetcode) 題目的接

    2023年04月24日
    瀏覽(34)
  • 【LeetCode】劍指 Offer(25)

    【LeetCode】劍指 Offer(25)

    目錄 題目:劍指 Offer 49. 丑數(shù) - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 丑數(shù)這道題用到一點動態(tài)規(guī)劃的思想, 具體思路如下: 根據(jù)題意: 如果說第一個丑數(shù)是一,包含質(zhì)因子 2、3 和 5 的數(shù)稱作丑數(shù), 那么我們發(fā)現(xiàn),之后的丑數(shù): 都是前

    2023年04月09日
    瀏覽(34)
  • 【leetcode刷題】劍指offer基礎(chǔ)版(完結(jié))

    劍指 Offer 05. 替換空格 劍指 Offer 58 - II. 左旋轉(zhuǎn)字符串 劍指 Offer 67. 把字符串轉(zhuǎn)換成整數(shù)?? 劍指 Offer 06. 從尾到頭打印鏈表 劍指 Offer 24. 反轉(zhuǎn)鏈表 劍指 Offer 35. 復(fù)雜鏈表的復(fù)制 劍指 Offer 18. 刪除鏈表的節(jié)點 劍指 Offer 22. 鏈表中倒數(shù)第k個節(jié)點 劍指 Offer 25. 合并兩個排序的鏈表

    2024年02月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包