fork download
  1. triangle = [
  2. [7],
  3. [3, 8],
  4. [8, 1, 0],
  5. [2, 7, 4, 4],
  6. [4, 5, 2, 6, 5]
  7. ]
  8.  
  9. def minimum_total(triangle):
  10. n = len(triangle)
  11. dp = [[0] * i for i in range(1, n + 1)]
  12. dp[0][0] = triangle[0][0]
  13.  
  14. for i in range(1, n):
  15. for j in range(len(triangle[i])):
  16. if j == 0:
  17. dp[i][j] = dp[i - 1][j] + triangle[i][j]
  18. elif j == len(triangle[i]) - 1:
  19. dp[i][j] = dp[i - 1][j - 1] + triangle[i][j]
  20. else:
  21. dp[i][j] = min(dp[i - 1][j - 1], dp[i - 1][j]) + triangle[i][j]
  22.  
  23. return min(dp[-1])
  24.  
  25. result = minimum_total(triangle)
  26. print(result)
  27.  
  28.  
Success #stdin #stdout 0.03s 9184KB
stdin
Standard input is empty
stdout
17