LeetCode 62(動態規劃)

2021-08-29 10:24:22 字數 769 閱讀 9747

乙個機械人位於乙個 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 解釋 從左上角開...