帶記憶的DFS

2021-08-21 09:01:58 字數 1044 閱讀 1766

題目描述

輸入一顆二叉樹的跟節點和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,陣列長度大的陣列靠前)

思想:

把引用作為函式引數,儲存記憶資訊。結合遞迴的思想,number-root.val即為下乙個節點判斷的數字和,終止條件是葉子節點。

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution:

# 返回二維列表,內部每個列表表示找到的路徑

defdfs

(self, root,number,pathlist,path):

if root.left==none

and root.right==none:

if root.val==number:

if root.left!=none:

self.dfs(root.left,number-root.val,pathlist,path)

if root.right!=none:

self.dfs(root.right,number-root.val,pathlist,path)

path.pop()

deffindpath

(self, root, expectnumber):

# write code here

if root==none:

return

else:

pathlist,path=,

self.dfs(root,expectnumber,pathlist,path)

return pathlist

dfs 記憶化 滑雪

傳送門 題意 給定乙個r行c列的矩陣,表示乙個矩形網格滑雪場。矩陣中第 i 行第 j 列的點表示滑雪場的第 i 行第 j 列區域的高度。乙個人從滑雪場中的某個區域內出發,每次可以向上下左右任意乙個方向滑動乙個單位距離。當然,乙個人能夠滑動到某相鄰區域的前提是該區域的高度低於自己目前所在區域的高度。資...

滑雪 DFS 記憶化搜尋

michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長的滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 3 4 5 16 17 ...

帕斯卡遊記 記憶化dfs

問題描述 nxn遊戲板上裝有整數,每平方乙個非負整數。目標是沿著板子的左上角到右下角的任何合法路徑行進。任何乙個正方形中的整數表示距該位置必須多大的步幅。如果步長將提前離開遊戲板,則禁止沿該特定方向前進。所有步驟都必須在右側或底部。請注意,0是乙個死角,會阻止進一步的進展。考慮圖1所示的4 x 4板...