これがケースです:
mylist = range(100)からsrc=1への不連続なパスがdest=99あり、配列pre[100]の各値は の最後を表しelemますpath。elems問題は、path~dest~のすべてを取得するにはどうすればよいかということsrcです。このようにすることができます:
path = []
i = dst
while i != src:
path.append(i)
i = pre[i]
path.append(src)
しかし、おそらく1つのステートメントだけを使用する簡単な方法はありますか?
サンプル入力
dst, src = 3, 2
pre = [2, 0, 3, 1]
出力
[3, 1, 0, 2] #It just have to follow the path with the indices from 3 to 2.
説明:
ソース宛先
vv
インデックス: 0 1 2 3
前: 2 0 3 1
dest 3 からは、前任者が 1 であるため、1 に移動します。
ノード 1 から、先行者は 0 であるため、0 に移動します。
ノード 0 からは前任者が 2 であるため、2 に移動します。
2 は src なので、これで完了です。