1表示点,0表示空白区域。 例如这个数组:
1 0 0 0 1
0 0 1 0 0
0 0 0 0 0
0 0 0 0 1
我的答案应该是2,因为这个数组中有2个正方形(或矩形),如此
应该使用所有点,并且你不能制作另一个正方形|矩形,如果它的所有点已经被使用(就像我们不能从中间的点到右上角的点创建另一个正方形),因为它们已经在其他正方形中使用过,你可以多次使用任何点如果至少有一个角没有使用点。 我可以解决它作为一个实现问题,但我不明白回溯是如何与这个问题相关的。 提前谢谢。
答案 0 :(得分:1)
回溯,让我们看一下你问题的另一个可能的答案,你列出了:
作为一种解决方案,另一种解决方案是(只要未使用一个点,就可以多次使用该点):
这是3个动作,回溯它旨在显示使用递归的替代结果。在此等式中,如果您开始计算阵列不同区域的方块的起始位置,则可以获得不同的结果。
示例迭代从0,0开始,然后向右走过每一行,试图找到以[0,0]开头的所有可能的矩形,将给出你提供的解决方案,迭代从4,0开始,然后向左移动试图找到所有可能的解决方案的行将给出我的结果。