LeetCode 62. 不同路徑

題目

一個機器人位于一個 m x n 網(wǎng)格的左上角 (起始點在下圖中標(biāo)記為“Start” )。

機器人每次只能向下或者向右移動一步。機器人試圖達到網(wǎng)格的右下角(在下圖中標(biāo)記為“Finish”)。



問總共有多少條不同的路徑?

例如,上圖是一個7 x 3 的網(wǎng)格。有多少可能的路徑?

示例 1:

輸入: m = 3, n = 2
輸出: 3
解釋:
從左上角開始,總共有 3 條路徑可以到達右下角。
1. 向右 -> 向右 -> 向下
2. 向右 -> 向下 -> 向右
3. 向下 -> 向右 -> 向右
示例 2:

輸入: m = 7, n = 3
輸出: 28

提示:

1 <= m, n <= 100
題目數(shù)據(jù)保證答案小于等于 2 * 10 ^ 9

解題思路

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        # countGrid = [[0]*m for i in range(n)]
        # for i in range(m):
        #     countGrid[0][i] = 1
        # for j in range(n):
        #     countGrid[j][0] = 1
        # #動態(tài)規(guī)劃,每個元素的最多路線,是為上部+左部
        # for i in range(1,m):
        #     for j in range(1,n):
        #         countGrid[j][i] = countGrid[j-1][i] + countGrid[j][i-1]
        # # print(countGrid)
        # return countGrid[n-1][m-1]
        #優(yōu)化動態(tài)規(guī)劃的空間,因為是前一列加上當(dāng)前列的前一個元素,可以縮減為一個數(shù)組
        countList = [1]*n
        for i in range(1, m):
            for i in range(1, n):
                countList[i] = countList[i-1] + countList[i]
        print(countList)
        return countList[-1]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。