牛客Top200---求路径(java图解)
Posted 小样5411
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客Top200---求路径(java图解)相关的知识,希望对你有一定的参考价值。
题目
一个机器人在m×n大小的地图的左上角(起点)。机器人每次向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?
解析
下面这张图就是最直观的解法,第一行与第一列都只有一种走法,其它位置走法只要将左边和上边相加即可
如第二行第三列有3种走法,三种颜色标注出来了,也就是上面有1种,左边有两种
代码
理解逻辑后,代码就很好写了
import java.util.*;
public class Solution {
public int uniquePaths (int m, int n) {
//初始化数组
int[][] dp = new int[m][n];
for(int i = 0 ; i < m ; i++){
for(int j = 0 ; j < n ; j++){
//第一行与第一列都只有一种走法
if(i == 0){
dp[0][j] = 1;
continue;
}
if(j == 0){
dp[i][0] = 1;
continue;
}
//非第一行与第一列情况
if(i > 0 && j > 0){
dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
}
return dp[m-1][n-1];
}
}
以上是关于牛客Top200---求路径(java图解)的主要内容,如果未能解决你的问题,请参考以下文章