力扣每日一題 62 不同路徑

2021-10-11 17:38:27 字數 853 閱讀 8568

這題比較簡單,至少能想到動態規劃和排列組合兩種方法。

明顯,到達第 i 行 j 列的點的路勁數為到達第 i-1 行 j 列的路勁數與到達 i 行 j-1 列的路勁數之和。而第一行和第一列的點只有一條路勁,即不停向右或不停向下。

由此,可以使用乙個 m*n 維的dp陣列進行動態規劃,dp[m-1][n-1]即是到達第 m 行 n 列的路勁數。

class

solution

for(vector<

int>

& v : dp)

for(

inti(1

); i < m;

++i)

}return dp[m-1]

[n-1];}};

由於每次只能向右或向下走,因此一共需要走 m+n-2 步,其中向右走 n-1 步,向下走 m-1 步。

因此,我們只需要確定向右(或向下)走的時刻,另乙個方向就自然確定了。

所以最終答案即cm+n-2

n-1。

不過在實現中可能有點坑。

class

solution

return ans;}}

;

在具體的實現中,可以將 n 選為 m , n 中較小的數,這樣可以減少計算量。

另外要注意,ans = ans * x / y 不能寫為ans *= x / y,因為後者先計算x / y,會產生精度的損失,導致最後結果出錯。

12 9 每日一題 62 不同路徑

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

力扣62 不同路徑

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?示例 1 輸入 m 3,n 7 輸出 28 示例 2 輸入 m 3,n 2 輸出 3 解釋 從左上角...

力扣 62 不同路徑

題目 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?示例 1 輸入 m 3,n 7 輸出 28 題解 這是個楊輝三角形,每個位置的路徑 該位置左邊...