乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。
機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。
問總共有多少條不同的路徑?
例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?
說明:m 和 n 的值均不超過 100。
示例 1:
輸入: m = 3, n = 2
輸出: 3
解釋:從左上角開始,總共有 3 條路徑可以到達右下角。
1. 向右 -> 向右 -> 向下
2. 向右 -> 向下 -> 向右
3. 向下 -> 向右 -> 向右
示例 2:
輸入: m = 7, n = 3
輸出: 28
本題是簡單的動態規劃問題。可以設定乙個二維陣列f[m][n],來表示從原點走到第m行第n個點有多少條路。其中從原點到左下角或右上角都只有一條路,所以二維陣列的第一行和第一列都可以初始化為1,然後從原點出發,自頂向下遞推。每次到乙個點都是出於兩種情況,從上方的點走向下或從左方的點走向右,則原點走到當前點的路徑數,即為原點到他上方一點的的路徑數加原點到他左方的點的路徑數,遞推方程為:
public int uniquepaths(int m, int n)
leetcode 62 組合數 動態規劃
解法一 組合數 一共有m 1和n 1種向下或向右的走法,用組合數排序 from math import factorial class solution def uniquepaths self,m int,n int int return int factorial m n 2 factorial...
動態規劃 leetcode62 不同路徑 C
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?示例 1 輸入 m 3,n 2 輸出 3 解釋 從左上角開始,總共有 3 條路徑可以到達右下角。向右...
leetcode 62不同路徑(動態規劃 組合)
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?示例 1 輸入 m 3,n 7 輸出 28 示例2 輸入 m 3,n 2 輸出 3 解釋 從左上角開...