当前位置: 首页 > news >正文

[leetcode]62_不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?示例1
输入:m = 3, n = 7
输出:28
示例 2:
输入:m = 2, n = 3
输出:3
解释: 从左上角开始,总共有 3 条路径可以到达右下角。
向右 -> 向右 -> 向下
向右 -> 向下 -> 向右
向下 -> 向右 -> 向右
示例 3:
输入:m = 7, n = 3
输出:28
示例 4:
输入:m = 3, n = 3
输出:6
提示:
1 <= m, n <= 100
题目数据保证答案小于等于 2 * 10^9

解题方法:【动态规划】

二维数组:n * m
递推公式:
dp[i][j]表示从"Start"走到(i,j)位置的路径数量
dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
初始化:
第一行所有格仅一种路径
dp[i for i in range(n)][0] = 1
第一列所有格仅一种路径
dp[0][i for i in range(n)] = 1
class Solution:def different_roads(self, m ,n):dp = [[0]* m for _ in range(n)]for i in range(m):dp[0][i] = 1for i in range(n):dp[i][0] = 1for i in range(n):for j in range(m):dp[i][j] = dp[i - 1][j] + dp[i][j - 1]return dp[n - 1][m - 1]if __name__ == '__main__':m, n = map(int, input().split())result = Solution().different_roads(m,n)print(result)

仅作为代码记录,方便自学自查自纠


http://www.mrgr.cn/news/33240.html

相关文章:

  • 【OSS安全最佳实践】对OSS表格文件中的敏感数据进行脱敏
  • Linux之实战命令03:stat应用实例(三十七)
  • 使命召唤游戏助手系统小程序的设计
  • ICM20948 DMP代码详解(36)
  • 基于Java springboot+mybatis 网上商城系统
  • 模板初阶(c++)
  • 【软件资料集】系统培训方案(Word项目参考2024)
  • 面对外行同事对你的工作指手画脚,但说不到点子上的情况,可以采取以下策略来有效合作
  • 图书管理系统小程序的设计
  • 【Python】探索 TensorFlow:构建强大的机器学习模型
  • Deepin V23安装SecureCRT 9.5.2
  • VBA技术资料MF200:只能通过按钮关闭工作簿
  • 2024年研赛-华为杯数模竞赛C题论文首发+论文讲解+代码分享
  • JavaWeb——前端工程化(2/3):Vue项目简介(创建、目录结构、启动、配置端口)
  • 用java语言写一个表的查询操作
  • Java 每日一刊(第14期):抽象类和接口
  • 【OSS安全最佳实践】降低因操作失误等原因导致数据丢失的风险
  • 从Yargs源码学习中间件的设计
  • 考研数学精解【6】
  • [OpenGL]使用OpenGL绘制带纹理三角形