경로 437 III의 합

제목 : 이진 트리, 정수 값으로 저장되어 각 노드를 감안할 때. 경로의 총 수는 경로를 찾을 주어진 값과 동일합니다. 경로는 루트에서 시작하여 필요로하지 않는다 (단 노드 부모로부터 자식 노드) 잎 노드에 종료 할 필요는 없지만 경로의 방향은 아래로해야합니다.
출처 : https://leetcode-cn.com/problems/path-sum-iii/

법 하나를 자신의 코드, 고해상도를 계산하고, 더 이전의 결과와 함께,하지만 때마다 다시 계산하면 있기 때문에 코드가 만료 매개 변수로 전달되는이 계산의 결과는 시간이 걸릴해야하며, 각 쌍 이 결과와 일치하여 계산 하였다 여러 파라미터.있는 큰 연산량을 줄일

# 이진 트리 노드에 대한 정의. 
클래스 의 TreeNode :
     데프  __init__ (자기, 배) : 
        self.val = X 
        self.left = 없음 
        self.right = 없음
 클래스 솔루션 :
     데프 pathSum (자기 루트 : TreeNode를, SU : INT) -> INT : 
        결과 = [0 ]
         DEF 판사 (고해상도) = []
             동안 입술 : 
                a.append (res.pop ()) 
                경우, 합 (a) == SU : 
                    결과 [0]결과 = [0] + 1
         데프 재귀 (루트 해상도) :
             만약 루트 이다 : 없음
                 리턴 
            res.append (root.val) 
            # 每次都对입술进行求和判断
            판사 (입술 [:]) 
            재귀 (루트. 왼쪽 입술) 
            재귀 (root.right, 해상도) 
            res.pop () 
        재귀 (루트 입술 = [])
         리턴 결과 [0]
코드보기

개선 된 코드는 시간 초과되지 않습니다

# 사용될 때 실행 : 180 MS는 모든 python3 제출에 사용자의 93.22 %를 이길 
#의 메모리 소비 : 33.4 MB, 모든 python3 제출에 사용자의 9.56 %를 이길 
클래스 솔루션 :
     DEF pathSum (자체 루트 : TreeNode를, SU : INT) -> INT : 
        결과 = [0]
         DEF의 재귀 (루트, 고해상도) :
             IF 루트가 됩니다 없음 :
                 리턴 
            # 이 몇 가지 첫째 조건을 충족 계산하고, 고해상도 과거에 계산하지 않아야 후 천천히 그 경우, 상기 제 1 전송을 전송합니다. 단계, 
            RES = I +는 root.val 위한 I  RES] + [root.val] 
            결과 [0] = 결과 [0] + res.count (SU)
             #입술 대상 변수 직접 송신 통과하지만 인해 = 입술 + [root.val] + I의 I위한 root.val은 입술] 
            #는 너무 함수 호출의 종료 후에 입술의 할당 재이며, 입술을 내용은 변경하지 않았다 
            재귀 (root.left, RES) 
            재귀 (root.right, RES) 
        재귀 (루트, RES = [])
         반환 결과 [0]
 IF  __name__ == ' __main__ ' : 
    duixiang = 솔루션 () 
    루트 TreeNode를 =. (5 ) = TreeNode를. (4 ) 
    B = TreeNode를 (. 11 ) 
    C = TreeNode를 (2 ) 
    D = TreeNode를 (2 )
    root.left= 
    a.left = B 
    b.left = C 
    b.right = D 
    SU = 22 = duixiang.pathSum (루트 SU)
     인쇄 (a)
코드보기

 

추천

출처www.cnblogs.com/xxswkl/p/12002884.html