leedcode 不同路径

本文介绍了一种使用动态规划(DP)算法解决从左上角到右下角的网格路径问题的方法。对于第一行和第一列的格子,由于只能通过竖直或水平方向到达,因此它们的路径数为1。对于其他格子,其路径数等于其左侧和上方格子路径数之和。通过构建二维数组存储每个格子的路径数,最终返回右下角格子的路径数。

使用dp,对于第一行和第一列的格子,只能有一个方法到达,要不是竖着走,要不横着走。其他的各自的走法只与其左边和上边的格子走法有关,即两个格子走法之和,即a[i][j]=a[i-1][j]+a[i][j-1]

class Solution(object):
    def uniquePaths(self, m, n):
        """
        :type m: int
        :type n: int
        :rtype: int
        """
        a = []
        for i in range(m):
            temp = []
            for j in range(n):
                temp.append(0)
            a.append(temp)
        for i in range(m):
            a[i][0] = 1
        for j in range(n):
            a[0][j] = 1
        for i in range(1, m):
            for j in range(1, n):
                a[i][j] = a[i - 1][j] + a[i][j - 1]
        return a[m - 1][n - 1]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值