题解 | #不同路径的数目(一)#

不同路径的数目(一)

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]
}
*/

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务