目录
每日一句
勿在别人心中修行自己,勿在自己心中强求别人
作者简介
🏡个人主页:XiaoChen_Android
📚学习专栏:力扣专栏
🕒发布日期:2022/8/14
『LeetCode|每日一题』不同路径
1.每日一题
2.解题思路
2.1 思路分析
此题为一道很典型的动态规划题,具有重复子问题,关键是找出那个转化关系
S1:据题分析,每次只能向下或者向右移动,所以任意一个位置,它一定是由上方或者左边的位置移动过来;
S2:分析到此,会有一个问题,左边界和上边界只能由一个方向得到,所以得特殊处理,只有一种走法所以赋值为1;
S3:接下来是中间区域,它们是由上方或者左边的位置移动到,所以matrx[i][j] = matrx[i - 1][j] + matrx[i][j - 1];
S4:最后右下角的那个位置的值就是移动方法的数量;
2.2 核心代码
matrx[i][j] = matrx[i - 1][j] + matrx[i][j - 1]
for(int i = 1 ; i < m ; i ++){
for(int j = 1 ; j < n ; j ++){
matrx[i][j] = matrx[i - 1][j] + matrx[i][j - 1];
}
}
2.3 全部代码
class Solution {
public int uniquePaths(int m, int n) {
int[][] matrx = new int[m][n];
for(int i = 0; i < m ; i ++){
matrx[i][0] = 1;
}
for(int i = 0 ; i < n ; i ++){
matrx[0][i] = 1;
}
for(int i = 1 ; i < m ; i ++){
for(int j = 1 ; j < n ; j ++){
matrx[i][j] = matrx[i - 1][j] + matrx[i][j - 1];
}
}
return matrx[m - 1][n - 1];
}
}
2.4 运行结果
🍁 类似题目推荐:
如果文章对你有帮助就支持一下噢,新手尝试,不好的地方请各位大佬多多指教!