1. 062

Unique Paths


2.算法

DP:O(nm)

  • 机器人要到点(i,j),可以选择(i-1,j)和(i,j-1)

到(i,j)的唯一路径数

dp[i][j]=dp[i-1][j]+dp[i][j-1]

dp[i][j]是从(0,0)到(i,j)的唯一路径

  • 网格最上边和最左边,则只能从起点走直线,dp[0][j]=dp[i][0]=1

  • 计算方向从上到下,从左到右,滚动数组


3. 代码


class Solution{

public:

    int uniquePaths(int m,int n){

        int dp[m][n];

//初始化dp,m*1全是1的情况

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

            dp[i][0]=1;

//初始化dp.1*n全是1的情况

        for(int j=0;j<n;j++)

            dp[0][j]=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];

    }

};

results matching ""

    No results matching ""