題目描述
??一個機器人位于一個 m x n 網格的左上角 (起始點在下圖中標記為 “Start” )。機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為 “Finish” )。問總共有多少條不同的路徑?
解析
??當前位置的數量等于上方的數量加左邊的數量。
public int uniquePaths(int m, int n) {/** 如果左上都存在* 當前位置的路徑數為上的路徑數加左邊的路徑數* */int[][] path = new int[m][n];path[0][0] = 1;for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {if(j - 1 >= 0) {path[i][j] += path[i][j - 1];}if(i - 1 >= 0) {path[i][j] += path[i - 1][j];}}}return path[m - 1][n - 1];}