leetcode-バック③

77件の質問

 

 裏:

クラスのソリューション:
     DEF組み合わせ(:int型で、k:セルフ、nは整数) - > 一覧[一覧[INT]:
        RES = []
         DEF (I、temp_list)をバックトラック:
             もし LEN(temp_list)== :K 
                res.append (temp_list)
             J における範囲(I、N + 1 ):
                バックトラック(J + 1、temp_list + [J])
        バックトラック( 1 、[])
         戻り RES

78件の質問:

 

裏:

クラスのソリューション:
     defのサブセット(自己、NUMS:リスト[INT]) - > 一覧[一覧[INT]:
        RESが = []
         DEF ヘルパー(I、TMP):
            res.append(TMP)
            のための J での範囲(I、 LEN(NUMS)):
                ヘルパー(J + 1、TMP + [NUMS [J])
        ヘルパー(0、[])
        戻り RES

90件の質問:

 

 裏:

クラスのソリューション:
     DEF - >:subsetsWithDup(一覧の[int]は自己、NUMS)一覧[一覧[INT]:
        RES = [] 
        のn = LEN(NUMS)
        nums.sort()
        デフヘルパー(IDX、TMP):
            RES。 (TMP)を追加
            するための I :範囲(IDX、N)
                 であれば I> IDX  NUMS [I] == NUMS [I-1 ]:
                     続ける
                ヘルパー(I +1、TMP + [NUMS [I])
        ヘルパー( 0、[])
        戻り RES

93件の質問

 

 裏:

クラスソリューション:
     DEF restoreIpAddresses(自己、S:STR) - > リスト[STR]:
        RES = [] 
        N = LEN(S)

        DEF (I、TMP、フラグ)をバックトラック:
             もし I == N 及びフラグ== 0:
                res.append(TMPの[: -1 ])
                 リターン
            ならフラグ< 0:
                 復帰
             J における範囲(I、I + 3 ):
                 もし J < N:
                     もし I == J  S [j] ==" 0 " 
                        バックトラック(J + 1、TMP + S [j] + " "、フラグ- 1 ブレークもし 0 <INT(S [I:J + 1])<= 255 
                        バックトラック(J + 1、 TMP + S [I:J + 1] + " "、フラグ- 1 
        バックトラック(0、""、4 リターン RES
                    

131タイトル

 

 バックトラック。

クラスのソリューション:
     デフパーティション(自己、S:STR) - > 一覧[一覧[STR]]: 
        RES = [] 
        TEMP = []
         DEF (S、TEMP)を後戻り:
             もし ないS:
                res.append(TEMP)
            のための I (1、LEN(S)+1の範囲):
                 もし S [:I] [:: - 1] == S [:I]:
                    バックトラック(S [I:]、TEMP + [S [:I] )
        バックトラック(S、[])戻り RES
        

216タイトル:

 

 裏:

クラスソリューション:
     DEF combinationSum3(:INT、N:自己、K INT) - > リスト[リスト[INT]:
        RES = []
         DEF (kは、nは、開始、TMP)ヘルパー:
             もし k個の== 0:
                 もし N == 0:
                    res.append(TMP)
                のリターン
            のための I における範囲(10開始):
                 もし <NI 0:ブレーク
                ヘルパー(K -1、NI、I + 1、TMP + [I])
        ヘルパー(K、 nは、 1 、[])
         戻り RES

 

おすすめ

転載: www.cnblogs.com/oldby/p/11715621.html