我们有一个 n*n 矩阵,例如我们取 n=4,矩阵如下。
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
我们必须按顺序遍历它:
1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10
我怎样才能做到这一点?
在这种情况下,“遍历”可能意味着访问并打印每个条目。您希望从顶部开始以顺时针螺旋方式遍历它。
以下是您需要执行的操作的英文句子式描述:
如果你能找到一种方法去子矩阵的左上角元素,从左到右读取顶行中的条目,从上到下读取右列中的条目,底行从右到左,然后左列从下到上,您将进行一次迭代。您可以取出剩余的子矩阵并继续,直到没有剩余的为止。
进一步提示:
从单元格 M[x][y] 中,
- M[x][y+1] 是右侧的单元格(只要 y+1
- M[x][y-1] 是左侧的单元格(只要 y>0)
- M[x+1][y] 是下面的单元格(只要 x+1
- M[x-1][y] 是上面的单元格(只要 x>0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)