题目
1- 思路
- 不同的路径 ——> 多维 dp ——> 每次只能向下或者向右一步 ——> 动规五部曲 两个方向定义递推公式
2- 实现
⭐62. 不同路径——题解思路
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/54caf3ca5a9a401eae5ed13e9ade1a7e.png)
class Solution {
public int uniquePaths(int m, int n) {
int[][] dp = new int[m][n];
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];
}
}
3- ACM 实现
public class diffPath {
public static int diffPath(int m,int n){
int[][] dp = new int[m][n];
for(int i = 0 ; i < m ; i++){
dp[i][0] = 1;
}
for(int i = 0 ; i < n;i++){
dp[0][i] = 1;
}
for(int i = 1 ; i<m;i++){
for(int j = 1 ; j < n; j++){
dp[i][j] = dp[i][j-1] + dp[i-1][j];
}
}
return dp[m-1][n-1];
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入数组行数 m");
int m = sc.nextInt();
System.out.println("输入数组列数 n");
int n = sc.nextInt();
System.out.println("结果是"+diffPath(m,n));
}
}