国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

算法之不定期更新(二)(2018-04-15)

Aklman / 2617人閱讀

摘要:題目中的數(shù)字可以分割出來的連續(xù)數(shù)字串的所有組合,不同組合之間用一個(gè)和連接示例和和和和和和和和和和這里給同學(xué)提個(gè)醒。。解題思路利用二叉樹。說到這這個(gè)題就很容易解決了,利用二叉樹的層次遍歷,每一層遍歷的時(shí)候都基于上一層的遍歷結(jié)果生成答案。

題目

input: n
output: 1...n中的數(shù)字可以分割出來的連續(xù)數(shù)字串的所有組合,不同組合之間用一個(gè)"和"連接

示例:
input: 3
output: 1,2,3和1,23和12,3和123

input: 4
output: 1,2,3,4和12,3,4和1,23,4和1,2,34和12,34和123,4和1,234和1234

這里給同學(xué)提個(gè)醒。。再往下直接就是我寫得解題思路了,希望大家可以先自己思考一下這個(gè)問題。

解題思路

利用二叉樹。

當(dāng)input = 1時(shí),output = 1
當(dāng)input = 2時(shí),output = 1,2和12,其實(shí)我們可以看做output = ("1" + ",2") + "和" + ("1" + "2")
當(dāng)input = 3時(shí),output = 1,2,3和12,3和1,23和123,其實(shí)我們可以看做output = ("1,2" + ",3") + "和" + ("12" + ",3") + 和 + ....

下面用一個(gè)圖來說明n為5的時(shí)候的解決思路

也就是說,n=5時(shí)候的輸出,是由n=4的輸出和"5", ",5"進(jìn)行組合后的來的。

說到這這個(gè)題就很容易解決了,利用二叉樹的層次遍歷,每一層遍歷的時(shí)候都基于上一層的遍歷結(jié)果生成答案。

代碼
function solution (n) {
    let result = ["1"] // 存放當(dāng)前遍歷層次的結(jié)果
    for (let i = 2; i <= n; i++) { // i 為當(dāng)前遍歷到的層數(shù)
        for (let j = Math.pow(2, i - 2); j >= 1; j--) { // j 為上一層共有結(jié)點(diǎn)數(shù)}
            let temp = result.shift() // 取出一個(gè)結(jié)果
            result.push(`${temp},${i}`) // 放進(jìn) temp + ,i
            result.push(`${temp}${i}`) // 放進(jìn) temp + i
        }
    }
    return result.join("和")
}

輸出測(cè)試:

這個(gè)算法的時(shí)間空間復(fù)雜度均為O(二叉樹的節(jié)點(diǎn)數(shù)),也就是O(2^n)

那么這個(gè)算法題就到這了,如果大家又什么好的想法或者我的有什么問題,歡迎在討論區(qū)和我交流

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/94233.html

相關(guān)文章

  • 算法定期更新(四)—— 從前序與中序遍歷序列構(gòu)造叉樹(2018-06-02)

    摘要:樹的前序,中序遍歷的結(jié)構(gòu)如下圖可以看出,通過前序遍歷可以確定根節(jié)點(diǎn),再通過中序遍歷和根節(jié)點(diǎn)的位置可以確定出左子樹和右子樹。另外左子樹的前序遍歷和中序遍歷的順序跟在其父樹中的順序一樣。因此可以確定有一種遞歸解法。 從前序與中序遍歷序列構(gòu)造二叉樹 今天帶來的是Leetcode上的一個(gè)經(jīng)典題:從前序與中序遍歷序列構(gòu)造二叉樹原題干: /** Definition for a binary ...

    charles_paul 評(píng)論0 收藏0
  • 算法定期更新(三)(2018-04-24)

    摘要:實(shí)現(xiàn)這個(gè)想法之后就發(fā)現(xiàn),時(shí)間復(fù)雜度真的太高了。本期算法小分享就到這里咯剛做完探索里的初級(jí),還有好多已經(jīng)說爛了的題就不分享了。如果有什么意見或者想法歡迎在評(píng)論區(qū)和我交流 題目 input: n // 代表無向圖的頂點(diǎn)數(shù) // 從1開始 m // 無向圖的邊數(shù) arr1 // 各邊的情況,形如[[1, 2], [3, 4],...](代表頂點(diǎn)0和頂點(diǎn)2相連,頂點(diǎn)3和頂點(diǎn)4相連) ...

    darryrzhong 評(píng)論0 收藏0
  • 算法定期更新(一)(2018-04-12)

    摘要:算法的確有他獨(dú)特的魅力。然后我在做這個(gè)題的時(shí)候,其實(shí)也用到了類似質(zhì)因數(shù)分解,只是其實(shí)我們可以更好的利用到因數(shù)這一個(gè)特性。判斷一個(gè)數(shù)是否是質(zhì)數(shù)質(zhì)數(shù)列表一開始我們認(rèn)為每一個(gè)數(shù)都可能是自身的冪線性篩為質(zhì)數(shù)遍歷質(zhì)數(shù)列表為質(zhì)數(shù)的冪 前言 從三月份到現(xiàn)在,大大小小筆試了十幾家公司(主要是因?yàn)橐恢眘olo code,沒人內(nèi)推),然后也能感覺到自己的進(jìn)步把。從編程題只能ac一題到后來的ak。今天面騰訊...

    Martin91 評(píng)論0 收藏0
  • 前端資源系列(4)-前端學(xué)習(xí)資源分享&前端面試資源匯總

    摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...

    princekin 評(píng)論0 收藏0
  • 使用Docker搭建Squid代理服務(wù)器

    摘要:已發(fā)出請(qǐng)求,正在等待回應(yīng)長(zhǎng)度正在保存至用時(shí)已保存認(rèn)證失敗正在連接已連接。參考參考一參考二 title: Docker搭建代理服務(wù)器 tags: - Squid categories: - Linux [TOC] 環(huán)境說明 項(xiàng)目 說明 系統(tǒng) Deepin 15.5 步驟 安裝Docker 安裝Squid容器 生成認(rèn)證文件 配置Squid服務(wù)器 啟動(dòng)Squid...

    syoya 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<