题解 | #不同路径的数目(一)#
不同路径的数目(一)
https://www.nowcoder.com/practice/166eaff8439d4cd898e3ba933fbc6358
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param m int整型
* @param n int整型
* @return int整型
*/
func uniquePaths(m int, n int) int {
// write code here
if m > n {
//确保m是较小的一个
m, n = n, m
}
dp := make([]int, m)
for i := range dp {
dp[i] = 1
}
for j := 1; j < n; j++ {
for i := 1; i < m; i++ {
// 到达当前位置的路径数等于从上方来的路径数(dp[i]之前的值)加上从左方来的路径数(dp[i-1]的值)
dp[i] += dp[i-1]
}
}
return dp[m-1]
}
/**
func uniquePaths(m int, n int) int {
dp := make([][]int, m)
for i := range dp {
dp[i] = make([]int, n)
}
for i := 0; i < m; i++ {
dp[i][0] = 1 // 第一列的初始化
}
for j := 0; j < n; j++ {
dp[0][j] = 1 // 第一行的初始化
}
for i := 1; i < m; i++ {
for j := 1; j < n; j++ {
dp[i][j] = dp[i-1][j] + dp[i][j-1]
}
}
return dp[m-1][n-1]
}
*/

