机器人位于 4x4 网格的左上角。
机器人可以上下左右移动,但不能两次访问同一地点。
机器人正在尝试到达网格的右下角。它可以到达网格右下角的方法有多少种?
现在我知道,如果机器人只能向下或向右移动,那么答案将是 8C4,因为它必须以任何顺序向右移动 4 个方格,向下移动 4 个方格。
但是当机器人可以向左和向上移动时,我很难解决这个问题!?
我只需要一个提示来解决问题!我应该如何处理这个问题?
这会工作得很好。答案是184。
public class RobotMovementProblem
{
public static void main(String[] args)
{
int grid[][]=new int[4][4];
System.out.println(countPaths(grid, 0, 0));
}
static int countPaths(int grid[][],int i,int j)
{
if ( i < 0 || j < 0 || i >= 4 || j >= 4 ) return 0;
if ( grid[i][j] == 1 ) return 0;
if ( i == 3 && j == 3 ) return 1;
int arr[][]=new int[4][4];
for(int m=0;m<4;m++)
{
for(int n=0;n<4;n++)
{
arr[m][n]=grid[m][n];
}
}
arr[i][j] = 1;
return countPaths(arr, i, j+1) + countPaths(arr, i, j-1) + countPaths(arr, i+1, j) + countPaths(arr, i-1, j);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)