动态规划-不同路径

LCR 098. 不同路径 - 力扣(LeetCode)

对于动态规划类型的题目,可以从以下角度去思考问题

1. 状态表示

机器人在每一个网格节点的状态 dp[i][j]  ,可以理解从 起始点 为走到 [i,j] ,一共有多少种方式;

2. 状态转移方程

结合题意,机器人只可以往下走或者往右走,那么其实可以这样来理解:

图中的 robot 的位置,只能从 位置1 和 位置2 过来,那么换一个角度思考,从 起始点 到 robot 的位置的路径数,其实就是 起始点 到 位置1 的路径数 + 起始点 到 位置2 的路径数; 

也就可以写成转换方程:dp[i][j] = dp[i-1][j] (起始点到位置2的路径数) + dp[i][j-1] (起始点到位置1的路径数)

3. 初始化

进行初始化表格,在这个步骤中,就需要去填入一些初始节点的对应值,为了防止越界;

比如按照上述的状态转移方程,此时就会有一些节点是会越界的: 

 所以就是要去解决这些情况,而解决这个情况的方法也有两种:

1. 直接去把这几个节点的值给填上;

2. 扩充一下表,作为虚拟值;(下面讲的就是这种方式)

 4. 填表顺序

这种情况就是按照从上往下,从左往右进行填表,具体根据情况分析;

5. 返回值 

最后就返回需要返回的对应结果; 

6. 代码

class Solution {public int uniquePaths(int m, int n) {int[][] p = new int[m+1][n+1];p[0][1] = 1;for(int i=1 ; i<=m ; i++){for(int j=1 ; j<=n ; j++){p[i][j] = p[i-1][j] + p[i][j-1];}}return p[m][n];}
}

 

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

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

相关文章

vscode按ctrl+鼠标左键没反应

vscode按ctrl鼠标左键没反应 问题问题解决 问题 新买的阿里云服务器,在连接vscode后,按ctrl鼠标左键没反应,怎么办? 问题解决 你没有在vscode上安装c的相关插件,安装之后才可以实现按ctrl鼠标左键跳转到函数的定义

硬件设备杂记——12G SDI及 AES67/EBU

常见的 SDI线缆规格&#xff0c;HD-SDI又被称为1.5G-SDI&#xff0c;具体参数以秋叶原的参数为例 AES67/EBU 目前音频网络标准主要集中在OSI网络体系的第二层和第三层。 第二层音频标准的弊端在于构建音频网络时需要专用的交换机&#xff0c;无法利用现有的以太网络&#xff0c…

使用Django Rest Framework设计与实现用户注册API

使用Django Rest Framework设计与实现用户注册API 在现代Web应用开发中&#xff0c;RESTful API已成为前后端分离架构中的关键组件。Django Rest Framework (DRF) 是一款基于Django的优秀库&#xff0c;提供了丰富的工具和接口&#xff0c;极大地简化了RESTful API的设计与实现…

Oracle和SQL Server区别

首先&#xff0c;从操作的平台来看&#xff0c;Oracle具有更高的灵活性&#xff0c;它可以在所有主流平台上运行&#xff0c;并采用了开放的策略目标&#xff0c;使得客户可以选择最适合他们特定需要的解决方案。这意味着客户可以利用很多种第三方应用程序和工具。相比之下&…

Matlab|【免费】【sci】考虑不同充电需求的电动汽车有序充电调度方法

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现sci文献《A coordinated charging scheduling method for electric vehicles considering different charging demands》&#xff0c;主要实现电动汽车协调充电调度方法&#xff0c;该方法主要有以…

Python3:读取和处理超大文件

在日常工作中&#xff0c;文件对象是我们常接触到的可迭代类型之一。一般用 for 循环遍历一个文件对象&#xff0c;可以逐行读取它的内容。但这种方式在碰到大文件时&#xff0c;可能会出现一些奇怪的效率问题。 需求&#xff1a; 小明是一位 Python 初学者&#xff0c;在学习…

Flask + Bootstrap vs Flask + React/Vue:初学者指南

在这篇博客文章中&#xff0c;我们将比较 Flask Bootstrap 和 Flask React/Vue 这两种技术栈&#xff0c;以帮助初学者了解哪种组合更适合他们的项目需求。我们将从学习曲线、易用性、依赖管理、构建部署和路由定义等方面进行比较。 学习曲线 Flask 是一个基于 Python 的轻…

【Unity】申请D-U-N-S邓氏编码流程

标题 在使用苹果开发者账号的时候&#xff0c;我们需要用到D-U-N-S邓氏编码&#xff0c;那如何申请呢&#xff1f;最近正好帮朋友申请了一个&#xff0c;接下来我来演示一下申请流程。 1.登录苹果开发者账号 登录连接&#xff1a;Apple Developer 没有账号的自己注册一个 2…

安装Git并设置用户信息

安装Git并设置用户信息的过程如下&#xff1a; 安装Git 在Windows系统上&#xff1a; 访问官方Git下载页面&#xff1a;Git - Downloading Package下载适用于Windows系统的安装程序&#xff08;.exe文件&#xff09;。运行安装程序&#xff0c;按照向导进行安装&#xff0c;…

Python-VBA函数之旅-format函数

目录 一、format函数的常见应用场景&#xff1a; 二、format函数的语法结构&#xff1a; 1、format函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;https://blog.csdn.net/ygb_1024?spm1010.2135.…

【OceanBase诊断调优 】—— 建索引执行报错问题排查

背景 建索引可能因各种各样的原因产生报错&#xff0c;本文主要介绍碰到建索引报错时&#xff0c;如何定位到建索引报错的日志&#xff0c;方便后续进一步使用工具一键收集日志/根因分析&#xff0c;分析根本原因。 备注&#xff1a;此文档中涉及的语句适用于版本号>4.2.3…

vivo怎么录屏?玩转手机新体验!(2024最新)

“最近新入手了一款vivo手机&#xff0c;感觉用起来真的很顺手&#xff0c;各种功能都很强大。昨天和朋友一起打游戏&#xff0c;突然想到要记录下精彩瞬间&#xff0c;但是找遍了手机&#xff0c;都没有找到录屏功能。我想请教一下各位vivo手机用户&#xff0c;你们通常在哪里…

深入剖析Tomcat(三) 实现一个简易连接器

Tomcat中的servlet容器叫做Catalina&#xff0c;Catalina有两个主要模块&#xff1a;连接器与容器。在本章&#xff0c;将会建立一个连接器来增强第二章中应用程序的功能&#xff0c;用一种更好的方式来创建request与response对象。 截止文章编写日期&#xff0c;servlet规范已…

ES Master 和data节点分别的职责

目录 Elasticsearch Master 节点 职责 特点 Elasticsearch Data 节点 职责 特点 通俗解释 Elasticsearch Master 节点 职责 集群管理: Master 节点负责整个集群的管理工作&#xff0c;包括集群的配置和控制。元数据管理: 维护集群的状态&#xff0c;包括索引的创建、删…

网络流的C++代码实现与过程讲解

网络流是一种非常重要的图论算法,它在许多实际问题中得到广泛应用。本文将介绍网络流算法的C++代码实现与过程讲解。 算法概述 网络流算法是通过将图中的边看作流量通道,将图的点看作流量的起点或终点,来求解图中的最大或最小流量的问题。它是一种非常重要的最优化算法,广…

DM数据库一次redo日志损坏修复的经历

1 缘由 服务器意外断电了&#xff0c;重新上电后发现DM数据库不能连接&#xff0c;提示网络通信异常&#xff0c;数据库拒绝连接。通过服务查看器发现数据库服务停止&#xff0c;并且手动启动失败&#xff0c;codeexited&#xff0c;status1/failure。 2 问题排查 网上查资料说…

Python教学入门:列表与元组

列表&#xff08;Lists&#xff09;&#xff1a; 定义&#xff1a; 列表是 Python 中最常用的数据类型之一&#xff0c;用于存储一组有序的元素。列表使用方括号 [] 定义&#xff0c;元素之间用逗号 , 分隔。 特点&#xff1a; 列表是可变的&#xff08;Mutable&#xff09;…

WebSocket发送与接收数据

创建websocket对象&#xff0c;参数为服务器websockets地址&#xff1a; websocket new WebSocket("ws:127.0.0.1:7001"); 1、发送文本数据 websocket.send(我太笨了&#xff0c;不知道你说的是啥) 2、发送对象数据 发送对象的话需要通过 JSON.parse() 和JSON.…

Java梳理

梳理 1.ResponseBody return “hello world!” 当需要返回一个值的时候&#xff0c;需要使用到ResponseBody RestControllerControllerResponseBody 1.1没有Controller就不能写 GetMapping("/hello") public String sayHello() { return "Hello, wor…

HQL,SQL刷题,尚硅谷(中级)

目录 相关表结构&#xff1a; 1、order_info表 2、order_detail表 题目及思路解析&#xff1a; 第一题&#xff0c;查询各品类销售商品的种类数及销量最高的商品 第二题 查询用户的累计消费金额及VIP等级 第三题 查询首次下单后第二天连续下单的用户比率 总结归纳&#xff1a…