算法-动态数组-62.不同路径

时间:2024-12-17 07:10:01

一、题目

二、思路解析

        1.思路:

                对于找到目的地它的来源主要来源于目的地的上一格和目的地的左一格

        2.常用方法:

                无

        3.核心逻辑:

                1.处理边界:

                        a.只向右移动,至始至终只有一条路径

for(int i=0;i<m;i++){

    dp[i][0]=1;
}

                        b.只向下移动,至始至终只有一条路径

for(int i=0;i<m;i++){

    dp[i][0]=1;
}

                 2.一般情况:对于找到目的地它的来源主要来源于目的地的上一格和目的地的左一格

for(int i=1;i<m;i++){
    for(int j=1;i<n;j++){
        dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}

三、代码实现

class Solution {
    public int uniquePaths(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-1][j]+dp[i][j-1];
            }
        }
        return dp[m-1][n-1];
    }
}

     

相关文章