日常大跃进,力扣688题,听大师讲图一乐。自己用钻木取火的精神和杯水车薪的实力算出来了当N=5,k=2,x=2,y=2时的正确解,只能说是听懂题目了......

class Solution:
def knightProbability(self, n: int, k: int, row: int, column: int) -> float:
dp = [[[0] * n for _ in range(n)] for _ in range(k + 1)]
for step in range(k + 1):
for i in range(n):
for j in range(n):
if step == 0:
dp[step][i][j] = 1
else:
for di, dj in ((-2, -1), (-2, 1), (2, -1), (2, 1), (-1, -2), (-1, 2), (1, -2), (1, 2)):
ni, nj = i + di, j + dj
if 0 <= ni < n and 0 <= nj < n:
dp[step][i][j] += dp[step - 1][ni][nj] / 8
return dp[k][row][column]
作者:LeetCode-Solution
来源:力扣(LeetCode)的官方答案
然后我加了点代码想run一下,也wrong了,还没搞懂为什么,先放在这里明天解决。

过了几分钟改对了:

博主分享了如何解决LeetCode上关于骑士在棋盘上的概率问题,通过递归和动态规划方法求解,并揭示了代码调试过程。重点在于理解题目和实现细节。

被折叠的 条评论
为什么被折叠?



