[プログラマ](Python)ターゲット番号-奥行き/幅優先ナビゲーション(DFS/BFS)


質問する

🧩 DFS, BFS


DFS-深度優先ナビゲーション
BFS-幅優先ナビゲーション

🧩 BFS


BFSを使用して[1,1,1,1,1,1]の数字を順番にナビゲートし、発生する可能性のあるすべての数字を配列として格納し、targetと同じ数字を返します.

🏁 説明する

def solution(numbers, target):
    start = [0]
    for num in numbers:
        tmp = []
        for i in start:
            tmp.append(i+num)
            tmp.append(i-num)
        start = tmp
    answer = start.count(target)
    return answer

🧩 別の解釈

def solution(numbers, target):
    if not numbers and target == 0 :
        return 1
    elif not numbers:
        return 0
    else:
        return solution(numbers[1:], target-numbers[0]) + solution(numbers[1:], target+numbers[0])

🧩 Feedback


再帰関数は,深さ優先探索コードの概念がよく把握されていないため,理解に時間がかかった.