機器人走方格
阿新 • • 發佈:2020-12-22
此部落格連結:https://www.cnblogs.com/ping2yingshi/p/14173360.html
機器人走方格
題目
給定兩個正整數intx,inty,代表一個x乘y的網格,現有一個機器人要從網格左上角頂點走到右下角,每次只能走一步且只能向右或向下走,返回機器人有多少種走法。保證x+y小於等於12。
2,2
返回:2
題解
此題是動態規劃的常規思路,每走到一個方格時,機器人都是由左邊和上邊到達到達的方格,取從左邊和上面走的之和。
說明:格子的座標為(i,j),走法為f(n);
狀態轉移方程:f(i)(j)=f(i-1)(j)+f(i)(j-1);初始條件為f(0)(0)=1;
這裡需要注意的是當格子只有一個行或者一列的話,表示只有一種走法。
程式碼
public class Robot { public int countWays(int x, int y) { // write code here int[][] f=new int[x][y]; f[0][0]=1; for(int i=1;i<x;i++){ f[i][0]=f[i-1][0]; } for(int i=1;i<y;i++){ f[0][i]=f[0][i-1]; } for(int i=1;i<x;i++){ for(int j=1;j<y;j++){ f[i][j]=f[i-1][j]+f[i][j-1]; } }return f[x-1][y-1]; }