件名の説明:
非反復配列要素の候補と目標数の目標を考えると、あなたはそのターゲット番号との組み合わせのためのすべての候補者を見つけることができます。
デジタル候補が繰り返さ制限なく選択することができ、
出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/combination-sum
クラスのソリューション{ プライベート: ベクトル <ベクトル< int型 >> 結果。 ベクトル < int型 > ソリューション。 公共: 空後戻り(ベクトル< 整数 >候補者、int型のターゲット、int型の開始){ 場合(ターゲット< 0 ) のリターン; もし(ターゲット== 0 ){ results.push_back(溶液)。 返します。 } のための(INT私は=開始します。iはcandidates.sizeを()<&&候補[I] -target <= 0。I ++ ){ 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()