File tree 1 file changed +26
-1
lines changed
1 file changed +26
-1
lines changed Original file line number Diff line number Diff line change 5
5
"""
6
6
7
7
# Method 1
8
- # Time: O(N)
8
+ # Time: O(N), modify triangle in-place
9
9
10
10
class Solution (object ):
11
11
def minimumTotal (self , triangle ):
@@ -23,3 +23,28 @@ def minimumTotal(self, triangle):
23
23
triangle [i ][j ] = min (triangle [i - 1 ][j - 1 ] + triangle [i ][j ], triangle [i - 1 ][j ] + triangle [i ][j ])
24
24
print (triangle [i ])
25
25
return min (triangle [- 1 ])
26
+
27
+
28
+
29
+ # Method 2
30
+ # Space: O(N) without modifying original triangle
31
+ class Solution (object ):
32
+ def minimumTotal (self , triangle ):
33
+ """
34
+ :type triangle: List[List[int]]
35
+ :rtype: int
36
+ """
37
+ prevRow = triangle [0 ]
38
+ for i in range (1 , len (triangle )):
39
+ currRow = []
40
+ for j in range (len (triangle [i ])):
41
+ smallAbove = float ('-inf' )
42
+ if j == 0 :
43
+ smallAbove = prevRow [j ]
44
+ elif j == len (triangle [i ]) - 1 :
45
+ smallAbove = prevRow [j - 1 ]
46
+ else :
47
+ smallAbove = min (prevRow [j - 1 ], prevRow [j ])
48
+ currRow .append (smallAbove + triangle [i ][j ])
49
+ prevRow = currRow
50
+ return min (prevRow )
You can’t perform that action at this time.
0 commit comments