[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] = 1
        for i in range(n):
            dp[i][0] = 1
        for 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)

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

相关推荐
2601_962218614 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
吞下星星的少年·-·4 小时前
The 2026 ICPC Asia East Continent Online Contest (II)(构造)
数据结构·算法
stolentime6 小时前
洛谷P10515 转圈题解
c++·算法·数学建模·贪心算法
和裕7 小时前
蜂窝板 vs 七层瓦楞重型纸箱:大件工业设备运输性能与成本全对比
大数据·运维·网络·人工智能·算法
衡石科技7 小时前
Data_Agent记忆机制与经验复用衡石分析智能体会话记忆与长期学习技术解析
人工智能·科技·学习·算法·企业级bi
shirsl9 小时前
算法 Day 2 滑动窗口 + 栈 / 单调栈
开发语言·python·算法
土司大王9 小时前
LeetCode hot100 回溯专题总结:Java 通用模板、决策树模型
java·算法·leetcode·决策树
2601_9622186110 小时前
万象生鲜系统订单全生命周期状态同步技术实现业务可视
大数据·数据库·人工智能·python·算法
那年窗外下的雪.10 小时前
AIDC 学习日志|第 22 天|All-Active/Single-Active 故障演练设计
服务器·网络·学习·算法·哈希算法
wzdark11 小时前
基于启发式搜索的最优路径规划算法研究4
算法