力扣:62.不同路径

动态规划

动态规划的解题思路:

1.dp数组以及下标的含义。

2.递推公式。

3.dp数组如何初始化。

4.遍历顺序。

5.打印dp数组。

1.先创建一个dp的二维数组,他的下标dp【m】【n】表示的是从开始节点(0,0)到达(m,n)节点一共有多少条不同的路径。

2.因为机器人只能向右和向下走一步,所以节点(m,n)的值为节点(m-1,n)和节点(m,n-1)两部分的总和。这个递推公式和斐波那契数列的原理相同。

3.初始化dp数组,使其能遍历出任意节点的总共的不同路径。因为机器人只能向右和向下走一步

,所以从(0,0)节点到(0,n)节点的路径只有1条,(0,0)节点到(m,0)节点的路劲也只有1条。

4.之后用两个for循环开始来遍历每一个节点的值。

5.返回dp数组中的值

class Solution {
    public int uniquePaths(int m, int n) {
        //先声明一个dp二维数组,表示的是机器人到达dp【m】【n】的总共有多少条不同路径
       int [][] dp=new int [m][n];
       //初始化好dp数组,把dp数组的m行和n列都初始化为1
          for (int o=0;o

你可能感兴趣的:(动态规划,leetcode,算法)