Leetcode 62(12-9-2020) Python

62. 不同路徑

一個(gè)機(jī)器人位于一個(gè) m x n網(wǎng)格的左上角 (起始點(diǎn)在下圖中標(biāo)記為 “Start” )。
機(jī)器人每次只能向下或者向右移動(dòng)一步。機(jī)器人試圖達(dá)到網(wǎng)格的右下角(在下圖中標(biāo)記為 “Finish” )。
問總共有多少條不同的路徑?

示例 1: 輸入:m = 3, n = 7 輸出:28

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

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

示例 4: 輸入:m = 3, n = 3 輸出:6

提示:

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

解題思路:

  1. 動(dòng)態(tài)規(guī)劃


  2. 數(shù)學(xué)方式


兩種代碼,實(shí)際第一種比較快

代碼:

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        x = [[1]*n]*m
        print (x)
        for i in range(1,m):
            for j in range(1,n):
                x[i][j] = x[i-1][j] + x[i][j-1]
        return x[m-1][n-1]
class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        return comb(m + n - 2, n - 1)

參考資料:

https://leetcode-cn.com/problems/unique-paths/solution/bu-tong-lu-jing-by-leetcode-solution-hzjf/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容