原题链接:https://leetcode-cn.com/problems/out-of-boundary-paths/

动态规划

dp[i][j][k]保存的是在(i,j)这个点,步数为k的所有路径数

状态转移

dp[i][j][len] = dp[i + 1][j][len - 1]+dp[i][j + 1][len - 1]+dp[i - 1][j][len - 1]+dp[i][j - 1][len - 1]

表示从上下左右四个点走到(i,j)的路径数

int findPaths(int m, int n, int N, int p, int q) {vector<vector<vector<long>>> dp(m + 2, vector<vector<long>>(n + 2, vector<long>(N + 1, 0)));for (int i = 0; i <= m + 1; i++){dp[i][0][0] = 1;dp[i][n + 1][0] = 1;}for (int i = 0; i <= n + 1; i++){for (int j = 0; j <= N; j++){dp[0][i][0] = 1;dp[m + 1][i][0] = 1;}}for (int len = 1; len <= N; len++){for (int i = m; i>0; i--){for (int j = n; j>0; j--){  dp[i][j][len] = (dp[i + 1][j][len - 1]+dp[i][j + 1][len - 1]+dp[i - 1][j][len - 1]+dp[i][j - 1][len - 1])%1000000007;}}}int sum=0;for(int i=0;i<=N;i++) sum=(sum+dp[p+1][q+1][i])%1000000007;return sum;
}

注意,len要放在最外层,每次dp就只记录恰好走k步的所有路径数。因为计算len=2时,len=1的dp必须构建完成,所以必须放在外层。 而且dp只记录当前k的所有路径这个非常重要! 最后计算给定点(p,q)的dp[p][q][1]到dp[p][q][k]即可

leetcode算法题--出界的路径数★相关推荐

  1. leetcode算法题--三角形最小路径和

    原题链接:https://leetcode-cn.com/problems/triangle/ 动态规划 dp[i][j]表示根结点到结点(i,j)的路径上的最小和 状态转移 dp[i][j]=min ...

  2. python【力扣LeetCode算法题库】18-四数之和

    四数之和 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等? ...

  3. python【力扣LeetCode算法题库】15- 三数之和

    三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组. 注意:答案中不可以包含 ...

  4. python【力扣LeetCode算法题库】2-两数相加

    两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...

  5. python【力扣LeetCode算法题库】169-多数元素

    多数元素 给定一个大小为 n 的数组,找到其中的多数元素.多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 示例 1: 输入: [3 ...

  6. python【力扣LeetCode算法题库】—两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元 ...

  7. leetcode算法题--七进制数

    原文链接:https://leetcode-cn.com/problems/base-7/ string convertToBase7(int num) {string res;bool is_neg ...

  8. Leetcode 576. 出界的路径数

    Leetcode 576. 出界的路径数 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/out-of-boundary ...

  9. LeetCode算法题整理(200题左右)

    目录 前言 一.树(17) 1.1.后序遍历 1.2.层次遍历 1.3.中序 1.4.前序 二.回溯(20) 2.1.普通回溯 2.2.线性回溯:组合.排列.子集.分割 2.3.矩阵回溯 三.二分查找 ...

最新文章

  1. 【洛谷搜索专题Python和C++解】DFS和BFS经典题目(陆续补充)
  2. HTML 5 令人期待的 5 项功能
  3. 2015 ICPC 上海
  4. UNIX网络编程笔记(1):TCP简介
  5. 第九章 图形用户界面的并行化(待续)
  6. 修改FTP服务器端口后无法访问
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的论坛管理系统
  8. hadoop异常: java.io.EOFException: Unexpected end of input stream
  9. Python爬虫之小米应用商店
  10. iOS Expected unqualified-id 和 Unkown type name 'NSString'
  11. 抖音/快手/火山热门技术---抖音微商引流之抖音实战引流技巧
  12. 基于ZYNQ、AM5728、AM5708、AM437x、AM335x、STM32+FPGA等平台提供了开源EtherCAT主站IgH案例
  13. 第五章 站在巨人的肩膀上
  14. 草履虫纳米机器人_《Nature》草履虫大小的微型机器人:由激光驱动可用于显微外科...
  15. 图网络算法——信息传递和节点分类
  16. Oracle EBS 定义值集的段值与快码的公用查看
  17. python筛选包含特定值的行_使用pandas筛选出指定列值所对应的行
  18. 理性做产品:用数据+漏斗、地图和路径来指引
  19. 黑莓开发学习入门系列,自己动手实现一个日历软件(六)
  20. 超爽的对战游戏2.0版本来了 非常有趣

热门文章

  1. 自学python入门-自学Python编程基础学习笔记 PDF 完整超清版
  2. python培训学校-如何找到靠谱的Python培训学校?
  3. python3.6.0安装教程-CentOS7安装Python3.6
  4. 适合python的笔记本配置-jupyter之配置自己喜欢的python环境
  5. 黑客用python还是ruby-Python、Lua和Ruby之优劣
  6. python官网如何调中文-django的settings中设置中文支持的实现
  7. python在线编程翻译器-【分享】python 翻译器,爬取百度翻译,并附上源码
  8. matlab求kcf算法响应图_剖析KCF
  9. redis中的intset
  10. UVa10905 - Children's Game(贪心算法)