File tree Expand file tree Collapse file tree 1 file changed +32
-9
lines changed Expand file tree Collapse file tree 1 file changed +32
-9
lines changed Original file line number Diff line number Diff line change 1
- # Time: O(m * n)
2
- # Space: O(m + n )
1
+ # Time: O(m + n)
2
+ # Space: O(1 )
3
3
4
4
class Solution (object ):
5
- # @return an integer
6
5
def uniquePaths (self , m , n ):
6
+ """
7
+ :type m: int
8
+ :type n: int
9
+ :rtype: int
10
+ """
11
+ def nCr (n , r ): # Time: O(n), Space: O(1)
12
+ if n - r < r :
13
+ r = n - r
14
+ c = 1
15
+ for k in xrange (1 , r + 1 ):
16
+ c *= n - k + 1
17
+ c //= k
18
+ return c
19
+
20
+ return nCr ((m - 1 )+ (n - 1 ), n - 1 )
21
+
22
+
23
+ # Time: O(m * n)
24
+ # Space: O(m + n)
25
+ class Solution2 (object ):
26
+ def uniquePaths (self , m , n ):
27
+ """
28
+ :type m: int
29
+ :type n: int
30
+ :rtype: int
31
+ """
7
32
if m < n :
8
- return self .uniquePaths (n , m )
9
- ways = [1 ] * n
33
+ m , n = n , m
10
34
35
+ dp = [1 ]* n
11
36
for i in xrange (1 , m ):
12
37
for j in xrange (1 , n ):
13
- ways [j ] += ways [j - 1 ]
14
-
15
- return ways [n - 1 ]
16
-
38
+ dp [j ] += dp [j - 1 ]
39
+ return dp [n - 1 ]
You can’t perform that action at this time.
0 commit comments