@@ -52,21 +52,77 @@ From the top-left corner, there are a total of 3 ways to reach the bottom-right
52
52
<li>It's guaranteed that the answer will be less than or equal to <code>2 * 10<sup>9</sup></code>.</li>
53
53
</ul >
54
54
55
-
56
55
## Solutions
57
56
58
57
<!-- tabs:start -->
59
58
60
59
### ** Python3**
61
60
62
61
``` python
63
-
62
+ class Solution :
63
+ def uniquePaths (self , m : int , n : int ) -> int :
64
+ dp = [[1 ] * n for _ in range (m)]
65
+ for i in range (1 , m):
66
+ for j in range (1 , n):
67
+ dp[i][j] = dp[i - 1 ][j] + dp[i][j - 1 ]
68
+ return dp[m - 1 ][n - 1 ]
64
69
```
65
70
66
71
### ** Java**
67
72
68
73
``` java
74
+ class Solution {
75
+ public int uniquePaths (int m , int n ) {
76
+ int [][] dp = new int [m][n];
77
+ for (int i = 0 ; i < m; ++ i) {
78
+ Arrays . fill(dp[i], 1 );
79
+ }
80
+ for (int i = 1 ; i < m; ++ i) {
81
+ for (int j = 1 ; j < n; ++ j) {
82
+ dp[i][j] = dp[i - 1 ][j] + dp[i][j - 1 ];
83
+ }
84
+ }
85
+ return dp[m - 1 ][n - 1 ];
86
+ }
87
+ }
88
+ ```
89
+
90
+ ### ** C++**
91
+
92
+ ``` cpp
93
+ class Solution {
94
+ public:
95
+ int uniquePaths(int m, int n) {
96
+ vector<vector<int >> dp(m, vector<int >(n, 1));
97
+ for (int i = 1; i < m; ++i) {
98
+ for (int j = 1; j < n; ++j) {
99
+ dp[ i] [ j ] = dp[ i - 1] [ j ] + dp[ i] [ j - 1 ] ;
100
+ }
101
+ }
102
+ return dp[ m - 1] [ n - 1 ] ;
103
+ }
104
+ };
105
+ ```
69
106
107
+ ### **Go**
108
+
109
+ ```go
110
+ func uniquePaths(m int, n int) int {
111
+ dp := make([][]int, m)
112
+ for i := 0; i < m; i++ {
113
+ dp[i] = make([]int, n)
114
+ }
115
+ for i := 0; i < m; i++ {
116
+ for j := 0; j < n; j++ {
117
+ if i == 0 || j == 0 {
118
+ dp[i][j] = 1
119
+ } else {
120
+ dp[i][j] = dp[i-1][j] + dp[i][j-1]
121
+ }
122
+ }
123
+ }
124
+ return dp[m-1][n-1]
125
+ }
70
126
```
71
127
72
128
### ** ...**
0 commit comments