Leetcode合計の39個の組み合わせ(バックトラッキングアルゴリズム解決)

件名の説明:

非反復配列要素の候補と目標数の目標を考えると、あなたはそのターゲット番号との組み合わせのためのすべての候補者を見つけることができます。

デジタル候補が繰り返さ制限なく選択することができ、

出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/combination-sum

クラスのソリューション{
 プライベート
    ベクトル <ベクトル< int型 >> 結果。
    ベクトル < int型 > ソリューション。
公共後戻り(ベクトル< 整数 >候補者、int型のターゲット、int型の開始){
         場合(ターゲット< 0 のリターン;
        もし(ターゲット== 0 ){ 
            results.push_back(溶液)。
            返します
        } 
        のためのINT私は=開始します。iはcandidates.sizeを()<&&候補[I] -target <= 0I ++ ){ 
            solution.push_back(候補[I])。
            バックトラック(候補ターゲット - 候補[i]は、I)。
            solution.pop_back(); 
        } 
    } 
    ベクトル <ベクトル< INT >> combinationSum(ベクトル< INT >&候補、int型のターゲット){ 
        のstd ::ソート(candidates.begin()、candidates.end())。
        バックトラック(候補者、ターゲット、0 );
        返す結果を、        
    } 
}。

DFSの深さ優先探索アルゴリズム

ベクトル:1.一back()

      2. pop_back() 

おすすめ

転載: www.cnblogs.com/robertgao/p/11626893.html