Depth First Search(DFS)について
DFS?
深度優先検索は、最も深い場所にナビゲートして戻り、まだナビゲートされていないノードがある場合は、最も深いナビゲーションプロセスを繰り返すアルゴリズムです.
要点
さぎょうモード
上記の手順が実行できなくなるまで(再帰的に)
サンプル問題(Programmersターゲット番号)
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3
使用可能な数値の配列番号、ターゲット番号のターゲットをパラメータとして指定したときに、適切に数値を加算して減算して、ターゲット番号を作成する方法の数を返します.せいげんじょうけん
コード#コード#
var numbersCopy = [Int]()
var targetCopy = 0
var count = 0
func DFS(_ depth: Int, _ sum: Int) {
if depth == numbersCopy.count {
if sum == targetCopy {
count += 1
}
return
}
DFS(depth + 1, sum + numbersCopy[depth])
DFS(depth + 1, sum - numbersCopy[depth])
}
func solution(_ numbers: [Int], _ target: Int) -> Int {
numbersCopy = numbers
targetCopy = target
DFS(0, 0)
return count
}
Reference
この問題について(Depth First Search(DFS)について), 我々は、より多くの情報をここで見つけました https://velog.io/@gomminjae/DFSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol