def path_types(path):
if path is None:
return
m, n = len(path), len(path[0])
# m, n = 7, 3 # 题目要求
dp = [[0 for _ in range(n)] for _ in range(m)] # 1. 注意
dp[0][0] = 1
for i in range(1, m):
dp[i][0] = dp[i - 1][0]
for j in range(1, n):
dp[0][j] = dp[0][j - 1]
for i in range(1, m): # 2. 注意<此处m,n的内外需和 1. 处保持一致>
for j in range(1, n):
dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
print('\n DP: ')
for i in dp:
print(i)
print('\n Result: ')
# print(dp[-1][-1])
return dp[-1][-1]
def main():
# root_map = [[1, 2, 5], [3, 2, 1]]
# root_map = [[1, 3, 1], [1, 5, 1], [4, 2, 1]]
root_map = [[1, 3, 5, 9], [8, 1, 3, 4], [5, 0, 6, 1], [8, 8, 4, 0]]
print('Path: ')
for item in root_map:
print(item)
print(path_types(root_map))
print('==' * 20)
if __name__ == "__main__":
main()
声明:题目原出自<https://leetcode-cn.com/>