编写一个函数(使用尽可能少的字节),该函数采用任意数量的列和行的二维数组,其中:
0
代表空块,1
代表蛇块。
该函数必须返回蛇可能经过的路径数。
范例1:
输入:
[
[1,1,1,1,1],
[0,0,0,0,1],
[0,0,0,0,1],
]
输出: 2
在上面的示例中,该函数将返回,2
因为答案是以下之一:
范例2:
输入:
[
[1,1,1,1],
[0,0,1,1],
[0,0,1,1],
]
输出: 6
在此示例中,该函数将返回,6
因为答案是以下之一:
注意:
评估输入时,可以假定:
- 表示列的数组将始终具有相同的大小(因此,数组为矩形);
- 至少存在1条有效路径;
- 蛇不能穿过边缘(某些蛇可能会发生这种情况)。
- 蛇将始终至少有2个方块;
- 蛇不能斜移动。
- 路径是定向的。(因此,两条路径在不同位置处结束,但看起来完全一样的路径不是同一条路径,它们将总计)
13
欢迎来到PPCG!不错的第一个挑战。
—
莱科尼
小注释:鉴于蛇将始终至少具有2个块,因此“总是将至少有一行和一列”是多余的。
—
Stewie Griffin
建议的测试用例:@StewieGriffin和给出的测试用例
—
凯文Cruijssen
[[0,0,1,1],[0,0,1,1],[0,0,1,1]]
。大多数的答案给16,但一个给15
到目前为止,似乎每个人(包括我在内)都假设两条路径在不同位置处终止,但看起来完全相同的路径并不相同。我认为这需要明确指定。
—
阿诺尔德
@Arnauld-是的。两条路径以不同的位置结尾但看起来完全相同的两条路径不是同一条路径,它们将总计。在您的示例中,如果我没记错的话,总数应该为16-我现在无法准确计算,但您明白了
—
阿德琳