牛客题霸 [ 求路径] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [ 求路径] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
牛客題霸 [ 求路徑] C++題解/答案
題目描述
一個機器人在m×n大小的地圖的左上角(起點,下圖中的標記“start"的位置)。
機器人每次向下或向右移動。機器人要到達地圖的右下角。(終點,下圖中的標記“Finish"的位置)。
可以有多少種不同的路徑從起點走到終點?
題解:
原本想遞歸做,發現復雜度過高
動態規劃做法
我們先設置邊界,就是沿著邊走,每次移動只有一種方案
然后轉移方程
dp[i][j]=dp[i-1][j]+dp[i][j-1]
當前格子(i,j),可以是從(i-1,j)走來的,也可以是從(i,j-1)走來的
(應該很好理解)
代碼:
class Solution { public:/*** * @param m int整型 * @param n int整型 * @return int整型*/int uniquePaths(int m, int n) {int dp[m][n];// write code hereif(m<1||n<1)return 0;for(int i=0;i<n;i++)dp[0][i]=1;for(int i=0;i<m;i++)dp[i][0]=1;for(int i=1;i<m;i++){for(int j=1;j<n;j++){dp[i][j] = dp[i-1][j] + dp[i][j-1];}}return dp[m-1][n-1];} };總結
以上是生活随笔為你收集整理的牛客题霸 [ 求路径] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客题霸 [ 最长公共前缀] C++题
- 下一篇: 12.1 寸平板立减千元:荣耀平板 V8