62.M 不同路径

Problem: 62. 不同路径arrow-up-right

思路

动态规划。 令dp[i][j]表示从左上角走到下表为i,j的位置的路径数量,则有:

dp[i][j] = dp[i-1][j] + dp[i][j-1]

Code

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++ {
		for j := 0; j < n; j++ {
			if i == 0 || j == 0 {
				dp[i][j] = 1
			} else {
				dp[i][j] = dp[i-1][j] + dp[i][j-1]
			}
		}
	}

	return dp[m-1][n-1]
}

Last updated