python使用动态规划解决不同路径问题

针对二维动态规划,还有一个问题就是关于求不同路径的实例,主要是说明在实际应用的场景中,要理解透彻实际问题的真正目的,就可以灵活实现代码编写。

对于求不同路径问题描述,对于一个机器人,处在一个mxn的网格子的最左上端,这个机器人每一次移动只能是向左或者向下移动一个格子,机器人的最终目的是到达网格子的最右下端,要想得到的就是这个机器人总共有多少中方法能够到达最右下端,约束条件是m和n的值不会超过100。

添加图片注释,不超过 140 字(可选)

对照动态规划问题的元素对这个问题进行分析,该问题中的机器人每次只能向下或者向右走一步,那如果这个机器人如果处在网格中的任意一处时,来自的机器人要不就是左侧要不就是来自上侧的网格子,所以对于当前机器人所处的网格子的路径数量,应该是到该格子的上侧格子路径总数和到该格子的左侧格子路径总数的数量之和,同时对于该问题限制了m和n的数量,该问题是可以使用动态规划思路来解决问题的。

添加图片注释,不超过 140 字(可选)

可以将该格子定义为一个二维网格空间,使用一个二维数组来进行表示,对于这个二维数组中的初始状态就是第一行和第一列都是1,这是显而易见的,第一列和第一行都只有一只公路径,到达第一行就只有向右走,到达第一列只有向下走的趋势才能够实现。

添加图片注释,不超过 140 字(可选)

其他的格子是在遍历过程中,使用递推关系式来进行填充格子的路径数量,也就是当前所在的网格的路径数量应该等于到达这个格子的左侧和上侧的各自的路径数量的总和。最终得到到达终点的格子的数量总和。完整代码如下:

 
 

def uniquePaths(self, m, n): dp=[] for i in range(n):#初始化 dp.append([0]*m) for i in range(n): dp[i][0]=1 dp[0]=[1]*m for i in range(1,n): for j in range(1,m): dp[i][j]=dp[i-1][j]+dp[i][j-1] return dp[n-1][m-1]

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

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

相关文章

【Java 进阶篇】Maven 使用详解:打造便捷高效的项目构建利器

在软件开发的道路上,项目构建是一个不可避免的过程。而Maven,作为一个强大的项目管理和构建工具,为开发者提供了一套标准化的项目结构和构建流程。本文将围绕Maven的使用详解,手把手地带你探索Maven的世界,让你在项目构…

XTU-OJ-1452-完全平方数-笔记

参考博客 XTU-OJ 1452-完全平方数 题意 输入一个奇数&#xff0c;使得 n*(2*an-1)/2是一个完全平方数&#xff0c;求满足条件的最小的a 1<n<1e9 先输入样例数&#xff0c;再输入n 输入 2 1 3 输出 0 2 代码 #include<stdio.h>#define N 1000000010int a…

【UnityShader入门精要学习笔记】(1)了解渲染流水线

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 渲染流水线什么是流水线什么…

【教3妹学编程-算法题】经营摩天轮的最大利润

3妹&#xff1a;“打个中国结&#xff0c;再系个红腰带&#xff0c; 愿善良的人们天天好运来, 你勤劳生活美, 你健康春常在, 你一生的忙碌为了笑逐颜开。” 2哥 : 3妹&#xff0c;元旦快乐啊。 3妹&#xff1a;2哥元旦快乐~。 2哥&#xff1a;祝新的一年&#xff0c;3妹技术突飞…

SPI通信

SPI通信 1、SPI通信概述 SPI(Serial peripheral interface)是一种同步、串行、全双工、总线制、主从工作方式。 有四线控制&#xff1a; SDO——主设备数据输出&#xff0c;从设备数据输入&#xff0c;对于MOSI output slave inputSDI——主设备数据输入&#xff0c;从事设备…

我想把我的作品转让给他人该怎么样转让?需要注意些什么问题?

作品转让是指著作权人将其作品的著作权转让给他人&#xff0c;让他人获得该作品的著作权权利。作品转让可以是全部转让&#xff0c;也可以是部分转让。 在作品转让中&#xff0c;著作权人需要与受让人签订转让合同&#xff0c;明确转让的权利种类、范围、期限、转让价款等事项…

Linux之进程管理

什么是进程 在linux中每个执行的程序都称为一个进程&#xff0c;每个进程都分配一个ID号&#xff08;pid进程号&#xff09;。每个进程都可能以两种方式存在&#xff0c;即前台和后天。前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作&#xff0c;但屏幕…

计算机网络【Google的TCP BBR拥塞控制算法深度解析】

Google的TCP BBR拥塞控制算法深度解析 宏观背景下的BBR 慢启动、拥塞避免、快速重传、快速恢复&#xff1a; 说实话&#xff0c;这些机制完美适应了1980年代的网络特征&#xff0c;低带宽&#xff0c;浅缓存队列&#xff0c;美好持续到了2000年代。 随后互联网大爆发&#x…

日志分析平台的架构方案

日志分析平台的架构方案通常涉及数据收集、存储、处理、分析和可视化等多个方面。以下是一个典型的日志分析平台架构方案的概述&#xff1a; 1. 数据收集层&#xff1a; - 通过日志收集器&#xff08;如Fluentd、Logstash、Filebeat等&#xff09;从各种来源&#xff08;服…

滴水逆向三期笔记与作业——02C语言——09 字节对齐_结构体数组

09 字节对齐_结构体数组 一、sizeof关键字1.1 基本类型的sizeof1.2 数组类型的sizeof1.3 结构体类型的sizeof 二、字节对齐--结构体对齐2.1 结构体对齐2.2 对齐规则2.2.1对其参数规则2.2.2 数据成员对齐规则2.2.2.3 结构体的总大小2.2.2.4 结构体嵌套 三、typedef关键字3.1 对已…

Python如何把类当做字典来访问及浅谈Python类命名空间

Python如何把类当做字典来访问 Python把类当做字典来访问 定义一个类将它实例化&#xff0c;我们可以通过obj.属性来访问类的属性&#xff0c;如果想获取类的所有实例变量&#xff0c;我们可以使用obj.__dict__来访问&#xff0c;如下&#xff1a; class A:def __init__(self)…

一篇文章认识微服务的优缺点和微服务技术栈

目录 1、微服务 2、微服务架构 3、微服务优缺点 3.1 优点 3.2 缺点 4、微服务技术栈 1、微服务 微服务化的核心就是将传统的一站式应用&#xff0c;根据业务拆分成一个一个的服务&#xff0c;彻底地去耦合&#xff0c;每一个微服务提供单个业务功能的服务&#xff0c;一…

mount -a 出错任然重启问题

问题来源 在磁盘分区挂载过后&#xff0c;为了创建的新分区的能够永久挂载&#xff0c;我们常常会在/etc/fstab下写下配置文件&#xff0c;使其永久挂载。但是该配置一旦写错&#xff0c;就面临这死机问题&#xff0c;为此&#xff0c;以下操作针对该问题进行 解决方案&#x…

[每周一更]-(第43期):Golang版本的升级历程

从1.13接触go语言开始更新我们公司内第一个Go项目&#xff0c;直至现在go版本已经发展到1.20&#xff08;20230428&#xff09;&#xff0c;我们从go发版开始认识go语言&#xff0c;有利于我们更深入 了解这门语言&#xff0c;洞悉一些深层方式&#xff0c;加深我们学习的动力&…

3294 李白的酒

#include<bits/stdc.h> using namespace std; int main(){int n;double ans;scanf("%d",&n);for(int i1;i<n;i)ans1,ans/2;printf("%.5f",ans); }

基于蚁狮算法优化的Elman神经网络数据预测 - 附代码

基于蚁狮算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蚁狮算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于蚁狮优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针…

vue.js中mounted和created生命周期钩子的区别

在Vue.js中&#xff0c;mounted和created是两个生命周期钩子函数&#xff0c;用于在组件不同阶段执行代码。 1.created: created生命周期钩子函数在组件实例被创建之后立即执行&#xff0c;这时候组件的数据观测 (data observation) 和事件/生命周期钩子事件初始化都已完成。…

Java Iterable和Iterator接口区别是什么?

Java Iterable和Iterator接口区别是什么&#xff1f; Iterable 和 Iterator 是 Java 集合框架中的两个关键接口&#xff0c;用于支持遍历集合元素的操作。它们之间的区别如下&#xff1a; Iterable 接口&#xff1a;这是一个顶层接口&#xff0c;定义了一个返回迭代器的方法 i…

CMake入门教程【基础篇】CMake+Minggw构建项目

文章目录 Minggw是什么Minggw下载CMake下载安装第1步&#xff1a;下载CMake第2步&#xff1a;安装CMake 如何构建和编译项目&#xff1a;使用CMake和MinGW总结 Minggw是什么 MinGW&#xff08;Minimalist GNU for Windows&#xff09;是一个免费的软件开发环境&#xff0c;旨在…

基于简化版python+VGG+MiniGoogLeNet的智能43类交通标志识别—深度学习算法应用(含全部python工程源码)+数据集+模型(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1&#xff09;VGG模型简化版2&#xff09;GoogLeNet简化版——MiniGoogLeNet 3. 模型训练及保存 相关其它博客工程源代码下载其它资料下载 前言 本项目专注于解决出国自驾游特定场景下的交…