需要帮助才能在二维数组中搜索所有对角线

时间:2014-06-04 13:44:31

标签: arrays search

我必须读取二维数组的所有对角线。 它应该是动态的,这与数组的大小无关(无论2x2,5x9 ......)。

现在这是我的问题,我不知道如何解决它。 是否可以使用循环执行此操作?

谢谢你的帮助:D

1 个答案:

答案 0 :(得分:0)

让我们说你的代码正在检查一些坐标(x,y),其中x是数组中的行号,y是列号,如下所示:

array[x][y];

请注意,这是标准笛卡尔坐标网格的90度反演。要访问左上角的单元格,您需要降低y和x,以便对数组进行索引,如下所示:

array[x-1][y-1]

要访问右上角,请使用:

array[x-1][y+1]

左下角:

array[x+1][y-1]

右下角:

array[x+1][y+1]

检查"对角线"您需要选择要检查的对角线方向,然后重复检查,直到您连续找到四个或找到其他玩家的棋子或空白区域。它可以通过循环完成,但更优雅的解决方案可能涉及递归。