动态规划——不同路径(python)
1.不同路径1def uniquePath(m,n): dp[[0]*n for _ in range(m)] #初始化dp数组 for i in range(n): #初始化第一行 dp[0][i]1 for i in range(m): #初始化第一列 dp[i][0]1 for i in range(1,m): for j in range(1,n): dp[i][j]dp[i-1][j]dp[i][j-1] print(dp[m-1][n-1]) return dp[m-1][n-1] def main(): m,nmap(int,input().split()) uniquePath(m,n) if __name____main__: main()2.不同路径2#不同路径2 # 3 3 # 0 0 0 # 0 1 0 # 0 0 0 # 输出 2 def uniquePath(m,n,obstacle): dp[[0]*n for _ in range(m)] #初始化dp数组 for i in range(n): #初始化第一行 if obstacle[0][i]1: break dp[0][i]1 for i in range(m): #初始化第一列 if obstacle[i][0]1: break dp[i][0]1 for i in range(1,m): for j in range(1,n): if obstacle[i][j]0: dp[i][j]dp[i-1][j]dp[i][j-1] print(dp[m-1][n-1]) return dp[m-1][n-1] def main(): m,nmap(int,input().split()) obstacle[] for i in range(m): linelist(map(int,input().split())) obstacle.append(line) uniquePath(m,n,obstacle) if __name____main__: main()