File tree 1 file changed +33
-0
lines changed
1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Time: O(n^2)
2
+ # Space: O(n)
3
+
4
+ # dp
5
+ class Solution (object ):
6
+ def houseOfCards (self , n ):
7
+ """
8
+ :type n: int
9
+ :rtype: int
10
+ """
11
+ dp = [0 ]* (n + 1 ) # dp[i]: number of ways with i cards and at most t triangles in the first row
12
+ dp [0 ] = 1
13
+ for t in xrange (1 , (n + 1 )// 3 + 1 ):
14
+ for i in reversed (xrange (3 * t - 1 , n + 1 )):
15
+ dp [i ] += dp [i - (3 * t - 1 )]
16
+ return dp [n ]
17
+
18
+
19
+ # Time: O(n^3)
20
+ # Space: O(n^2)
21
+ # dp
22
+ class Solution_TLE (object ):
23
+ def houseOfCards (self , n ):
24
+ """
25
+ :type n: int
26
+ :rtype: int
27
+ """
28
+ dp = [[0 ]* (n + 1 ) for _ in xrange ((n + 1 )// 3 + 1 )] # dp[t][i]: number of ways with i cards and t triangles in the first row
29
+ dp [0 ][0 ] = 1
30
+ for t in xrange (1 , (n + 1 )// 3 + 1 ):
31
+ for i in xrange (3 * t - 1 , n + 1 ):
32
+ dp [t ][i ] = sum (dp [j ][i - (3 * t - 1 )] for j in xrange (t ))
33
+ return sum (dp [t ][n ] for t in xrange ((n + 1 )// 3 + 1 ))
You can’t perform that action at this time.
0 commit comments