这道题使用递归思想虽然代码较简洁,但会出现大量的重复计算,但还是想把这种思路展示给大家:

class Solution {
public://vector<int> dirs = {{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};double knightProbability(int n, int k, int row, int column) {return (double)process(n, k, row, column)/pow(8,k);}long process(int n, int k, int row, int column){if(row<0||column<0||row>=n||column>=n){return 0;}if(k==0){return 1;}long d1 = process(n, k-1, row-2, column+1);long d2 = process(n, k-1, row-1, column+2);long d3 = process(n, k-1, row+1, column+2);long d4 = process(n, k-1, row+2, column+1);long d5 = process(n, k-1, row+2, column-1);long d6 = process(n, k-1, row+1, column-2);long d7 = process(n, k-1, row-1, column-2);long d8 = process(n, k-1, row-2, column-1);return d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8;}
};

在n和k比较大的时候,栈会溢出,因此要转换思路使用动态规划求解,力扣上有官方题解,这里就不在重复了。

骑士在棋盘上的概率(递归)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 动态规划-打败怪兽的概率(java)

    打败怪兽的概率 打败怪兽的概率 暴力递归 代码演示 动态规划 代码演示 动态规划专题 打败怪兽的概率 给定3个参数,N,M,K 怪兽有N滴血, 等着英雄来砍自己 英雄每一次打击, 都会让怪兽流失[0~ ...

  9. Knight On the Chessboard

    Leetcode 688: 骑士在棋盘上的概率 Definition: 思路 由于刷题尹始对DP和DFS之类的问题还没有什么概念,看到题目第一想法就是直接正向求解,在使用递归实现基本问题的求解之后发现 ...

最新文章

  1. java实现用户登录注册功能(用集合框架来实现)
  2. WannaCry的UWP版,哈哈哈
  3. Redis详解(八)------ 主从复制
  4. T- SQL性能优化详解
  5. 卡特兰数(简单说说)
  6. CNN 反向传播推导
  7. LeetCode 39. 组合总和(回溯+剪枝)
  8. python为什么叫爬虫-可以写爬虫的那么多,为什么只有python火了?
  9. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)
  10. c语言四个人中有一个人是小偷,涛涛学BASIC逻辑判断
  11. 用matlab编写驻波图,用驻波法测声速的Matlab模拟
  12. 多线程:synchronized关键字解析
  13. 参加江大白手把手教你-----AidLux智慧安防AI训练营
  14. PT_常见的连续型分布/均匀分布/指数分布/柯西分布/正态分布
  15. linux手机纠错软件,纠错神笔Lernstift:让你远离拼写错误
  16. 用计算机做动画效果,ps制作眨眼效果,用ps制作眨眼动画效果
  17. 鸿蒙系统翻车了,华为鸿蒙系统“翻车了”?被质疑抄袭安卓11系统,事实并非如此...
  18. 最实用的网上赚钱方法:这个方法真的很实用哦!
  19. 【Mysql SQLZOO练习命令练习】
  20. 脚下,梦開始的地方——七月总结

热门文章

  1. 改善睡眠的简单方法,几个小技巧不妨一试
  2. 用什么软件可以记录并提醒每天的工作任务?
  3. 深度揭秘阿里云函数计算异步任务能力
  4. iphone横竖屏切换,旋转屏幕
  5. No JSON object could be decoded
  6. 部分选主元matlab,列选主元的高斯消去法-matlab
  7. 橘子与萝卜同食容易导致甲状腺肿(图)
  8. 今日头条,企鹅号,大鱼号,百家号,做搬运视频还赚钱吗?
  9. 九宫格一条线连起来_9个圆圈用4条线连起来-九个点用四条线连接-数学-霍甲心同学...
  10. JAVA实现手机短信验证码在指定有效的时间里校验