无脑bfs超时了:

class Solution:def knightProbability(self, n: int, k: int, row: int, column: int) -> float:# 外面也要定义一下global cntcnt = 0# 估计得用bfsdef bfs(r, c, times):global cntif times == k and 0 <= r < n and 0 <= c < n:cnt += 1returnif r < 0 or r >= n or c < 0 or c >= n or times >= k:returnX = [-2, -1, 1, 2, 2, 1, -1, -2]Y = [1, 2, 2, 1, -1, -2, -2, -1]for i in range(8):nextR = r + X[i]nextC = c + Y[i]if 0 <= nextR < n and 0 <= nextC < n:bfs(nextR, nextC, times + 1)bfs(row, column, 0)return cnt / (8 ** k)

dp更快

class Solution:def knightProbability(self, n: int, k: int, row: int, column: int) -> float:# 三维dp 次数+行+列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] = 1else:for di, dj in ((-2, -1), (-2, 1), (2, -1), (2, 1), (-1, -2), (-1, 2), (1, -2), (1, 2)):# ni, nj 是前一步的位置,这一步到了i,jni, nj = i + di, j + dj# 若上一步合法if 0 <= ni < n and 0 <= nj < n:dp[step][i][j] += dp[step - 1][ni][nj] / 8return dp[k][row][column]

总结:
这种bfs超时就dp吧,dp的话三维,然后初始步和基于上一步,上一步肯定是八个位置,然后判断是否合法即可

leetcode:骑士在棋盘上的概率相关推荐

  1. LeetCode第688题 骑士在棋盘上的概率

    LeetCode第688题 骑士在棋盘上的概率 题目 在一个 n x n 的国际象棋棋盘上,一个骑士从单元格 (row, column) 开始,并尝试进行 k 次移动.行和列是 从 0 开始 的,所以 ...

  2. leetcode算法题--骑士在棋盘上的概率★

    原题链接:https://leetcode-cn.com/problems/knight-probability-in-chessboard/ 动态规划,这种题目的想法都是逆向思维,题目问从一个点出发 ...

  3. 骑士在棋盘上的概率(递归)

    这道题使用递归思想虽然代码较简洁,但会出现大量的重复计算,但还是想把这种思路展示给大家: class Solution { public://vector<int> dirs = {{-2 ...

  4. LeetCode 688. “马”在棋盘上的概率(DP)

    文章目录 1. 题目 2. 解题 1. 题目 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始.即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1). 现有一个 ...

  5. leetcode - 688. “马”在棋盘上的概率

    688. "马"在棋盘上的概率 -------------------------------------------- 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 ...

  6. leetcode 688. Knight Probability in Chessboard | 688. “马”在棋盘上的概率(dp,记忆化搜索)

    题目 https://leetcode.com/problems/knight-probability-in-chessboard/ 题解 左神讲过类似问题: 给定5个参数,N,M,row,col,k ...

  7. LeetCode 688. “马”在棋盘上的概率

    688. "马"在棋盘上的概率 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始.即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1). 现有 ...

  8. 【精】LintCode领扣算法问题答案:1084. “马”在棋盘上的概率

    1084. "马"在棋盘上的概率 描述 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始.即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1) ...

  9. LeetCode 1227. 飞机座位分配概率(DP+数学归纳法)

    1. 题目 有 n 位乘客即将登机,飞机正好有 n 个座位.第一位乘客的票丢了,他随便选了一个座位坐下. 剩下的乘客将会: 如果他们自己的座位还空着,就坐到自己的座位上, 当他们自己的座位被占用时,随 ...

  10. LeetCode 398. 随机数索引(概率)

    1. 题目 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试. 示例: ...

最新文章

  1. linux和android开发链接
  2. boost::search_n相关的测试程序
  3. Android控件Gallery3D效果
  4. 来自1976,Hinton写的第一篇论文火了:胶囊网络,是40年前的胶囊?
  5. AR:Unity与iOS交互(入门篇)
  6. 2015手机网民超10亿是什么景象?
  7. JMS学习(三)JMS 消息结构之属性及消息体详解
  8. BIGEMAP APP离线卫星地图数据应用
  9. 软件观念革命:交互设计精髓_电子沙盘设计主要分为哪几种?
  10. 寻找春天 九宫格日记-2013.01.12
  11. 层次分析法例题 matlab,层次分析法的MATLAB实现
  12. 仿bing搜索页面制作(大概)
  13. java l老毕_她被毕福剑一手捧红,还给她牵线煤老板,老毕落难时她的做法超赞...
  14. Elasticsearch学习(二)————搜索
  15. python爬取微信小程序(实战篇)_python爬取猫眼的前100榜单并展示在微信小程序
  16. JavaScript和Node.js的关系
  17. 年纪轻轻竟脱发?头发到底该如何挽回?
  18. 大规模复杂变电站巡检机器人分层路径规划
  19. 【VFP] MS Virual FoxPro 9.0 | 常用命令 | VFP
  20. Eclipse Debug setp into无法进入源码中的解决办法

热门文章

  1. 软件著作权提交源代bai码格式_软件著作权使用说明书字体要求-软件著作权提交源代码格式要求...
  2. Pytorch学习笔记(7)——模型放GPU上经常报CUDA错该怎么办
  3. windows批量上传文件到linux,windows上传文件到linux云服务器上
  4. 串口IEC103协议
  5. uni-app获取车牌号
  6. Java 全栈知识体系( PDF 可下载)
  7. 通达信快捷功能键大全
  8. Java面试题之:分布式缓存
  9. UE4官方文档UI学习:2.UMG 创建主菜单
  10. 微弱信号检测matlab,微弱信号检测