不同路径-动态规划

30 阅读1分钟
// 不同路径-动态规划  
// 输入:m = 3, n = 7  
// 输出:28  
// m*n的矩阵,从起点到终点有多少条路径  
public static int uniquePaths(int m,int n){  
    int[][] dp=new int[m][n];  
    // 只有第一行时=1  
    for (int i = 0; i <n ; i++) {  
        dp[0][i]=1;  
    }  
    // 只有第一列时=1  
    for (int i = 0; i <m ; i++) {  
        dp[i][0]=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];  
}