题目描述

图片说明

代码

class Solution {
public:
    /**
     * 
     * @param m int整型 
     * @param n int整型 
     * @return int整型
     */
    int uniquePaths(int m, int n) {
        // write code here

        //这道题与剑指offer上不同,比其简单

        int dp[100][100];//定义一个二维数组

        for(int i = 1; i <= m ; i++)
        {
            dp[i][1] = 1; //将第一列赋值为1、因为如果一直向右就是一种方法
        }

        for(int j = 1; j<= n ;j++)
        {
            dp[1][j] = 1;//将第一行赋值为1、因为如果一直向下就是一种方法
        }

        //从第二个开始,到达最后的就是最后一格的方案数 == 最后一格上边的方案数 + 最后一格左边的方案数
        for(int i = 2; i<= m ; i++)
        {
            for(int j = 2; j <= n; j++)
            {
                dp[i][j] = dp[i-1][j] + dp[i][j-1];
            }
        }

        return dp[m][n];

    }
};