LeetCode 576. 出界的路径数(动态规划)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定一个 m × n 的网格和一个球。
球的起始坐标为 (i,j) ,你可以将球移到相邻的单元格内,或者往上、下、左、右四个方向上移动使球穿过网格边界
但是,你最多可以移动 N 次。
找出可以将球移出边界的路径数量。
答案可能非常大,返回 结果 mod 10^9 + 7 的值。

示例 1:
在这里插入图片描述

输入: m = 2, n = 2, N = 2, i = 0, j = 0
输出: 6

示例 2:
在这里插入图片描述

输入: m = 1, n = 3, N = 3, i = 0, j = 1
输出: 12
说明:
球一旦出界,就不能再被移动回网格内。
网格的长度和高度在 [1,50] 的范围内。
N 在 [0,50] 的范围内。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/out-of-boundary-paths
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:
LeetCode 552. 学生出勤记录 II(动态规划)
LeetCode 688. “马”在棋盘上的概率(DP)
LeetCode 935. 骑士拨号器(动态规划)
LeetCode 1220. 统计元音字母序列的数目(DP)

  • 从外圈开始向内走
  • dp[x][y][t] 表示在 x,y 处,剩余 t 步时的方案数
class Solution {
public:int findPaths(int m, int n, int N, int i, int j) {if(N == 0)return 0;vector<vector<vector<int>>> dp(m,vector<vector<int>>(n, vector<int>(N+1, 0)));// dp[x][y][t] 表示在 x,y 处,剩余t步时,的方案数int x, y, ans = 0, mod = 1e9+7;for(y = 0; y < n; y++){	//从边界往里面走,初始化dp[0][y][N-1] += 1;dp[m-1][y][N-1] += 1;}for(x = 0; x < m; x++){	//从边界往里面走,初始化dp[x][0][N-1] += 1;dp[x][n-1][N-1] += 1;}ans = (ans+dp[i][j][N-1])%mod;//第一步走完int t = N-1;while(t){vector<vector<vector<int>>> temp(m,vector<vector<int>>(n, vector<int>(N+1, 0)));for(x = 0; x < m; x++){for(y = 0; y < n; y++){temp[x][y][t-1] = (temp[x][y][t-1] + (x > 0 ? dp[x-1][y][t] : 0))%mod;temp[x][y][t-1] = (temp[x][y][t-1] + (y > 0 ? dp[x][y-1][t] : 0))%mod;temp[x][y][t-1] = (temp[x][y][t-1] + (x < m-1 ? dp[x+1][y][t] : 0))%mod;temp[x][y][t-1] = (temp[x][y][t-1] + (y < n-1 ? dp[x][y+1][t] : 0))%mod;}//四个方向转移}ans = (ans+temp[i][j][t-1])%mod;//累加t--;dp = temp;}return ans;}
};

228 ms 104.3 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频参数(流媒体系统,封装格式,视频编码,音频编码,播放器)对比

发现了几个视频参数对比的资源&#xff0c;是Wikipedia上的&#xff0c;总结的非常好&#xff1a; 流媒体系统对比&#xff1a; http://en.wikipedia.org/wiki/Comparison_of_streaming_media_systems 封装格式对比&#xff1a; http://en.wikipedia.org/wiki/Comparison_of_co…

HTML试题及答案(总结)

HTML练习题1&#xff08;选择题&#xff09; 一、选择 1.在一个框架的属性面板中&#xff0c;不能设置下面哪一项。&#xff08; &#xff09; A&#xff0e;源文件 ; B&#xff0e;边框颜色 ; C&#xff0e;边框宽度 D&#xff0e;滚动条 2. 下列哪一…

04.卷积神经网络 W3.目标检测

文章目录1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测&#xff08;YOLO&#xff09;6. 交并比7. 非极大值抑制8. Anchor Boxes9. YOLO 算法10. 候选区域作业参考&#xff1a; 吴恩达视频课 深度学习笔记 1. 目标定位 定位分类问题&#xff…

P2P中的NAT穿越方案简介

文章链接&#xff1a; http://www.shipin.it/Index/videolist/id/68.html 转载于:https://www.cnblogs.com/lolita/p/3334029.html

Python面试必须要看的15个问题

问题1 到底什么是Python&#xff1f;你可以在回答中与其他技术进行对比&#xff08;也鼓励这样做&#xff09;。 答案 下面是一些关键点&#xff1a; Python是一种解释型语言。这就是说&#xff0c;与C语言和C的衍生语言不同&#xff0c;Python代码在运行之前不需要编译。其他…

LeetCode 988. 从叶结点开始的最小字符串(DFS)

文章目录1. 题目2. 解题1. 题目 给定一颗根结点为 root 的二叉树&#xff0c;树中的每一个结点都有一个从 0 到 25 的值&#xff0c;分别代表字母 a 到 z&#xff1a;值 0 代表 a&#xff0c;值 1 代表 b&#xff0c;依此类推。 找出按字典序最小的字符串&#xff0c;该字符串…

Humble Numbers USCAO chapter 3.1

...目测我自己写坑定超时,就去NOCOW看了下,题解,官方是每个质数与已有的humble想乘取大于最大humble的最小数即是新的最大humble, 然后我就写了个个,开始嫌麻烦用set存,超时的飞起。然后全部改成数组,结果case 6还是超时,想了半天感觉和别人的题解也没啥差别,为什么运行时间差这…

LeetCode 636. 函数的独占时间(栈)

文章目录1. 题目2. 解题1. 题目 给出一个非抢占单线程CPU的 n 个函数运行日志&#xff0c;找到函数的独占时间。 每个函数都有一个唯一的 Id&#xff0c;从 0 到 n-1&#xff0c;函数可能会递归调用或者被其他函数调用。 日志是具有以下格式的字符串&#xff1a;function_id…

网关详解

计算机主机网关的作用是什么&#xff1f; 假设你的名字叫小不点&#xff0c;你住在一个大院子里&#xff0c;你的邻居有很多小伙伴&#xff0c;在门口传达室还有个看大门的李大爷&#xff0c;李大爷就是你的网关。当你想跟院子里的某个小伙伴玩&#xff0c;只要你在院子里大喊一…

Javascript复习题

Javascript复习题 一、选择题 1、写“Hello World”的正确javascript语法是&#xff1f; (A) A.document.write("Hello World") B. "Hello World" C.response.write("Hello World") D…

04.卷积神经网络 W3.目标检测(作业:自动驾驶 - 汽车检测)

文章目录1. 问题背景2. YOLO 模型2.1 模型细节2.2 分类阈值过滤2.3 非极大值抑制2.4 完成过滤3. 在照片上测试已预训练的YOLO模型3.1 定义类别、anchors、图片尺寸3.2 加载已预训练的模型3.3 模型输出转化为可用的边界框变量3.4 过滤边界框3.5 在图片上运行测试题&#xff1a;参…

Jquery特殊效果

1.jquery特殊效果 fadeIn() 淡入 $btn.click(function(){ $(#div1).fadeIn(1000,swing,function(){ alert(done!); }); }); fadeOut() 淡出 fadeToggle()切换淡入淡出 hide()隐藏元素 show() 显示元素 toggle() 切换元素的可见状态 slideDown() 向下展…

DB2表的重组

DB2在存储大数据的时候&#xff0c;遇到一个问题&#xff0c;将数据导入表中保存不了&#xff0c;最后是重组后才解决。 下面是从IBM官网上搜集的资料&#xff1a; 官网地址&#xff1a;http://publib.boulder.ibm.com/infocenter/db2e/v9r1/index.jsp?topic%2Fcom.ibm.db2e.d…

开发语言

开发语言 高级语言&#xff1a;Python、Java、PHP、C#、Go、Ruby、C…   代码编译得到 字节码 &#xff0c;虚拟机执行字节码并转换成机器码再后在处理器上执行低级语言&#xff1a;C、汇编   代码编译得到 字节码 &#xff0c;虚拟机执行字节码并转换成机器码再后在处理器…

LeetCode 775. 全局倒置与局部倒置(归并排序/二分查找/一次遍历)

文章目录1. 题目2. 解题2.1 归并排序求逆序度2.2 二分查找2.3 一次遍历1. 题目 数组 A 是 [0, 1, ..., N - 1] 的一种排列&#xff0c;N 是数组 A 的长度。 全局倒置指的是 i,j 满足 0 < i < j < N 并且 A[i] > A[j] &#xff0c;局部倒置指的是 i 满足 0 < i…

Jquery事件、冒泡、委托与节点

1-jquery属性操作 1、html() 取出或设置html内容 // 取出html内容 var $htm $(#div1).html(); // 设置html内容 $(#div1).html(<span>添加文字</span>); 2、prop() 取出或设置某个属性的值 注&#xff1a;attr可以读取自定义属性 // 取出图片的地址 var $src $(#i…

使用 ServiceStack 构建跨平台 Web 服务

本文主要来自MSDN杂志《Building Cross-Platform Web Services with ServiceStack》&#xff0c;Windows Communication Foundation (WCF) 是一个相当优秀的服务框架&#xff0c;当我们讨论跨平台的服务的时候&#xff0c;虽然WCF对WebService的支持还行&#xff0c;在面对一些…

Hive基础(一)

一、Hive是什么 Hive是基于Hadoop的一个数据仓库工具(离线)&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供类SQL查询功能。&#xff0c;它能接收用户输入的sql语句&#xff0c;然后把它翻译成mapreduce程序对HDFS上的数据进行查询、运算&#xff0c;…

LeetCode 926. 将字符串翻转到单调递增(动态规划)

文章目录1. 题目2. 解题1. 题目 如果一个由 0 和 1 组成的字符串&#xff0c;是以一些 0&#xff08;可能没有 0&#xff09;后面跟着一些 1&#xff08;也可能没有 1&#xff09;的形式组成的&#xff0c;那么该字符串是单调递增的。 我们给出一个由字符 0 和 1 组成的字符串…

利用Jqurey写一个输入内容增加并且可以删除,上下移动的标签

最终结果如下&#xff0c;输入内容增加标签并且可以删除&#xff0c;上下移动&#xff1a; 代码赏析&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>todolist</title><style type…