DP問題練習2 網格路徑數量計算問題

2022-07-16 08:27:09 字數 844 閱讀 2661

問題描述

有乙個機械人的位於乙個 m × n 個網格左上角。

機械人每一時刻只能向下或者向右移動一步。機械人試圖達到網格的右下角。

問有多少條不同的路徑?

樣例:給出 m = 3 和 n = 3, 返回 6.

給出 m = 4 和 n = 5, 返回 35.

思路

用座標i,j標識格仔的位置,左上角為(0,0),右下角為(m-1,n-1)

狀態轉移方程:

f(i,j) = i>0?f(i-1,j):0 + j>0?f(i,j-1):0 //f(i,j)表示(i,j)位置的路徑數量,i-1和j-1都要在允許的範圍裡,否則直接取值0

**:
var m = 3;

var n = 3;

var log = console.log;

(()=>)();

function countpaths(m,n)

function main()

其實三年前我學資料結構這門課的時候做過一道類似的題,不過是求所有可能的路徑。當時編碼量不到800行,所以屁都不懂,就去網上找了乙個解答,使用dfs。由於是第一次寫比較複雜的程式,所以有很深的印象。就用dfs寫乙個解答緬懷一下吧:

/**

* 從左上角到右下角可能的路徑數量 使用dfs演算法

* @param m [description]

* @param n [description]

*/function dfs_pro(m,n)else

} dfs(0,0);

return count;

}

2 網格模型

1.建立幾何模型 var geometry new three.spheregeometry 60,40,40 建立乙個球體幾何物件 var geometry new three.boxgeometry 100,100,100 建立乙個立方體幾何物件geometry 2.建立材質 var mater...

1293 網格中的最短路徑

題目 1293.網格中的最短路徑鏈結 思路 這題我們可以採用bfs和dfs來做,首先我們需要明白bfs由於相當於沒有回溯的過程,因此bfs是不需要遍歷完所有節點就可以找到到目的的最短路徑,但是由於dfs有借助於回溯的思想,因此是需要遍歷完所有節點才可以知道最短路徑長度。方法一bfs 思路 首先,我們...

1293 網格中的最短路徑

給你乙個 m n 的網格,其中每個單元格不是 0 空 就是 1 障礙物 每一步,您都可以在空白單元格中上 下 左 右移動。如果您 最多 可以消除 k 個障礙物,請找出從左上角 0,0 到右下角 m 1,n 1 的最短路徑,並返回通過該路徑所需的步數。如果找不到這樣的路徑,則返回 1。dp陣列儲存的不...