题目
一个机器人在m×n大小的地图的左上角(起点)。
机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。
可以有多少种不同的路径从起点走到终点?
备注:m和n小于等于100,并保证计算结果在int范围内。
数据范围:0<n,m≤100,保证计算结果在32位整型范围内。
要求:空间复杂度O(nm),时间复杂度 O(nm)
进阶:空间复杂度 O(1),时间复杂度 O(min(n,m))
示例1
输入:
2,1
返回值:
1
示例2
输入:
2,2
返回值:
2
代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param m int整型
* @param n int整型
* @return int整型
*/
public int uniquePaths (int m, int n) {
//1.创建dp表
int[][] dp = new int[m + 1][n + 1];
//2.初始化
dp[0][1] = 1;
//3.填表
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];
}
}
//4.返回值
return dp[m][n];
}
}