前言
本篇文章来自leedcode,是博主的学习算法的笔记心得。
如果觉得对你有帮助,可以点点关注,点点赞,谢谢你!
题目链接
题目描述
思路
1.如果m=1或者n=1就只有一条路
2.将最左列置1,最上行置1,dp[i][j]代表到这里的最大路径数
3.对于其他位置,dp[i][j]=dp[i-1][j]+dp[i][j-1]上方和左方之和
代码
public int uniquePaths(int m, int n) {
int[][] dp=new int[m][n];
if(m==1||n==1)return 1;
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-1][j]+dp[i][j-1];
}
}
return dp[m-1][n-1];
}