牛客-机器人走方格Ⅰ(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)
还没有任何评论哟~
