leetcode 27 62 不同路徑

2021-10-02 21:44:52 字數 1015 閱讀 1302

乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。

機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。

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

說明:m 和 n 的值均不超過 100。

示例 1:

輸入: m = 3, n = 2

輸出: 3

解釋:從左上角開始,總共有 3 條路徑可以到達右下角。

向右 -> 向右 -> 向下

向右 -> 向下 -> 向右

向下 -> 向右 -> 向右

示例 2:

輸入: m = 7, n = 3

輸出: 28

我的**就很厲害了,時間效率很高。

首先宣告乙個陣列,用來儲存當前節點的路徑個數。

遞迴呼叫,當x, y超出邊界時,這條路徑不通,返回0。當x, y是終點時,是一條路,返回1。

為了提高效率,如果這個點已經被計算過了,直接返回結果。

當前節點等於向右走當個數 + 向下走的個數。

把當前節點的結果記錄到陣列中,返回當前節點路徑個數。

class

solution

public

intuniquepaths

(int m,

int n,

int curm,

int curn,

int[

] store)

int right =

uniquepaths

(m, n, curm +

1, curn, store)

;int down =

uniquepaths

(m, n, curm, curn +

1, store)

; store[curm]

[curn]

= right + down;

return right + down;

}}

不同路徑(LeetCode)

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...

不同路徑(leetcode)

題目 物體怎樣從左上角移動到右下角,其中1表示有障礙,不能行走。思路 知道整個方框的行和列。對第一行和第一列進行填充1,當碰到1 障礙 填充0。本題可以被視為乙個動態規劃的問題,從上到下,從左到右,其中到達乙個終點的路徑總是左邊路徑 上面路徑。即 d p i j dp i 1 j dp i j 1 ...

leetcode不同路徑

1.深度優先搜尋 從finish點開始,往回走,每次是往上走,往右走,當回到0,0點時,路徑數量加1 如下 class solution void dfs int m,int n,int r,int c 但是這種方法可能會超時 2.利用數學公式 地圖矩陣為m行,n列,從左上角到右下角一共需要走m n...