求不同路径

思路:动态规划

重点:问题分解

因为只能向右或者向下移动,那么第一行和第一列中的每一格都设为1,其余格的值都等于M【i,j】 = M【i-1,j】+M【i,j-1】

代码:

public int uniquePaths(int m, int n) {
        int[][] M = new int[m][n];
        for(int i = 0; i < m;i ++){
            for(int j = 0;j < n;j ++){
                if(i == 0 || j ==0){
                    M[i][j] = 1;
                }else{
                    M[i][j] = M[i - 1][j] + M[i][j-1];
                }
            }
        }
        return M[m-1][n-1];
    }

猜你喜欢

转载自blog.csdn.net/lyj2018gyq/article/details/83926258