经典dp--不同路径系列之Go写法
uniquePaths
这是一个dp问题,最重要的是需要找到一个状态转移方程。从题目可见,机器人只能向右或者向左走,因此对于到达某一个节点,其主要有两条路径可以到达,也就是说从上面的节点以及左边的节点过来。
而假定我们有一个dp二维数组,大小为m x n, 然后存储的值是到达这个节点的路径数目,根据上面所述,我们有状态转移方程:
特别地,这里可以使用优化空间版本的dp数组,也就是一个大小为n的一位数组,从左到右更新dp数组,dp[i-1]就是左边的节点,而dp[i]在未更新的情况下实际是存储上一行节点的路径信息,也就是说dp[i]就是存储上面节点的路径信息,因此有转移方程:
// accept code
func uniquePaths(m int, n int) int {
dp := make([]int,n)
for i:=0; i<n;i++ {
dp[i]