题解 | #不同路径的数目(一)#
不同路径的数目(一)
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] } */