1. 无障碍的走格子/棋盘
'''
m*n无障碍的格子, 每次只能往右或者下走
dp[i][j]为到i,j这里有多少种走法
递推公式:
dp[i][j] = dp[i-1][j] + dp[i][j-1]
初始矩阵:
dp[0][j],dp[i][0]都为1
'''
def solution(m, n):
dp = [[0] * (n) for i in range(m)]
for i in range(m):
for j in range(n):
if i == 0 and j == 0:
dp[i][j] = 1
elif i == 0 and j > 0:
dp[i][j] = 1
elif i > 0 and j == 0:
dp[i][j] = 1
else:
dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
print(dp)
return dp[m - 1][n - 1]
if __name__ == '__main__':
m, n = map(int, input().split())
res = solution(m, n)
print(res)
2. 有障碍的棋盘
后续补。。
note:
m*n矩阵从左上到右下一共是种方法。。