代碼隨想錄算法訓(xùn)練營Day 22|216.組合總和III,17.電話號碼的字母組合

題目簡介

216. 組合總和 III
找出所有相加之和為 n 的 k 個數(shù)的組合分瘦,且滿足下列條件:
只使用數(shù)字1到9
每個數(shù)字 最多使用一次
返回 所有可能的有效組合的列表 油湖。該列表不能包含相同的組合兩次昭殉,組合可以以任何順序返回。

17. 電話號碼的字母組合
給定一個僅包含數(shù)字 2-9 的字符串冬殃,返回所有它能表示的字母組合。答案可以按 任意順序 返回。
給出數(shù)字到字母的映射如下(與電話按鍵相同)辐怕。注意 1 不對應(yīng)任何字母。

初見思路

  1. 使用標(biāo)準(zhǔn)回溯贡茅,會直接超時, 以及眼瞎秘蛇,沒有看見只能使用數(shù)字1-9
class Solution:
    def combinationSum3(self, k: int, n: int) -> List[List[int]]:
        self.combinations = list() 
        self.routes = list()
        self.n = n
        nums = list(range(n))
        self.back_track(nums,1,k)
        return self.combinations

    def back_track(self,nums: List[int],index:int,k:int) -> None:
        if len(self.routes) == k and sum(self.routes) == self.n:
            self.combinations.append(list(self.routes))
        else:
            for i in range(index,len(nums)):
                self.routes.append(nums[i])
                self.back_track(nums, i + 1, k)
                self.routes.pop()

更正后擊敗了93%

class Solution:
    def combinationSum3(self, k: int, n: int) -> List[List[int]]:
        self.combinations = list() 
        self.routes = list()
        self.n = n
        nums = list(range(10))
        self.back_track(nums,1,k)
        return self.combinations

    def back_track(self,nums: List[int],index:int,k:int) -> None:
        if sum(self.routes) > self.n:
            return
        if len(self.routes) == k and sum(self.routes) == self.n:
            self.combinations.append(list(self.routes))
        else:
            for i in range(index,10):
                self.routes.append(nums[i])
                self.back_track(nums, i + 1, k)
                self.routes.pop()
  1. 構(gòu)建按鍵到字母的字典,對于每次到一個新的數(shù)字顶考,對字典中對應(yīng)的字母進(jìn)行組合赁还。
class Solution:
    def __init__(self):
        self.s = ""
        self.button_map = {
            "0":"",
            "1":"",
            "2":"abc",
            "3":"def",
            "4":"ghi",
            "5":"jkl",
            "6":"mno",
            "7":"pqrs",
            "8":"tuv",
            "9":"wxyz"
        }
        self.ans = list()

    def back_tracking(self,digits:str,index:int)-> None:
        if index == len(digits):
            self.ans.append(self.s)
            return
        
        letters = self.button_map[digits[index]]
        for i in range(len(letters)):
            self.s += letters[i]
            self.back_tracking(digits, index+1)
            self.s = self.s[:-1]


    def letterCombinations(self, digits: str) -> List[str]:
        if not digits:
            return list()
            
        self.back_tracking(digits,0)
        return self.ans
        

復(fù)盤思路

https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html

https://programmercarl.com/0017.%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81%E7%9A%84%E5%AD%97%E6%AF%8D%E7%BB%84%E5%90%88.html

重點難點

今日收獲

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市驹沿,隨后出現(xiàn)的幾起案子艘策,更是在濱河造成了極大的恐慌,老刑警劉巖渊季,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朋蔫,死亡現(xiàn)場離奇詭異,居然都是意外死亡却汉,警方通過查閱死者的電腦和手機(jī)驯妄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來合砂,“玉大人青扔,你說我怎么就攤上這事。” “怎么了微猖?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵谈息,是天一觀的道長。 經(jīng)常有香客問我凛剥,道長侠仇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任犁珠,我火速辦了婚禮逻炊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盲憎。我一直安慰自己嗅骄,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布饼疙。 她就那樣靜靜地躺著溺森,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窑眯。 梳的紋絲不亂的頭發(fā)上屏积,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機(jī)與錄音磅甩,去河邊找鬼炊林。 笑死,一個胖子當(dāng)著我的面吹牛卷要,可吹牛的內(nèi)容都是我干的渣聚。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼僧叉,長吁一口氣:“原來是場噩夢啊……” “哼奕枝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瓶堕,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤隘道,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后郎笆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谭梗,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年宛蚓,在試婚紗的時候發(fā)現(xiàn)自己被綠了激捏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡凄吏,死狀恐怖缩幸,靈堂內(nèi)的尸體忽然破棺而出壹置,到底是詐尸還是另有隱情,我是刑警寧澤表谊,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站盖喷,受9級特大地震影響爆办,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜课梳,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一距辆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧暮刃,春花似錦跨算、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氧猬,卻和暖如春背犯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盅抚。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工漠魏, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妄均。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓柱锹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親丰包。 傳聞我的和親對象是個殘疾皇子禁熏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容