Advertisement

牛客-机器人走方格Ⅰ(dp练习)

阅读量:

设x和y为两个正整数,则表示一个x乘以y的网格。其中有一个机器人从该网格的左上角顶点移动至右下角,在每步移动中仅能向右或向下移动一格,请问该机器人共有多少种不同的行走路径?在此问题中限定条件为x+y不超过12的情况。

解析:
机器人仅能从上方放置位置或左侧进入;因此,在动态规划算法中遵循矩阵路径求解法则时有以下递推关系式:matrix[i][j] = matrix[i-1][j] + matrix[i][j-1];而对于位于矩阵外围的所有起始单元格(即i=0或j=0的情况),由于它们仅有单一的有效路径通向内部目标单元格(i,j),故只需将这些起始单元格初始化为数值1即可完成初始状态设定。

复制代码
    class Robot {
    public:
    int countWays(int x, int y) {
        // write code here
        int matrix[13][13] = {0};
        for(auto i = 1; i <= x; i++)
            for(auto j = 1; j <= y; j++)
            {
                if(i ==1 or j ==1)matrix[i][j] = 1;
                else matr

全部评论 (0)

还没有任何评论哟~