C ++修改代码以从中心开始以螺旋顺序打印2D矩阵

时间:2017-09-09 10:10:05

标签: c++ matrix spiral

我的作业是:从左上角开始以螺旋顺序打印2D矩阵,然后从中心开始(第一次分配的终点将是起点)。

我已经从左上角进行了遍历,没问题,但是我不能修改代码来做相反的事情。有什么想法吗?

for (int n = 0, i = 0, j = 0, rightWall = size - 1, leftWall = 0; n < size * 
size; n++) {
       if ((i == (leftWall + 1)) && (j == leftWall)) {rightWall--; 
leftWall++;} //SHRINK SPIRAL
       if ((j == rightWall) && (i < rightWall)) {i++; continue;} //GO DOWN
       if ((j < rightWall) && (i == leftWall)) {j++; continue;} //GO RIGHT
       if ((i == rightWall) && (j > leftWall)) {j--; continue;} //GO LEFT
       if ((j == leftWall) && (i > leftWall)) {i--; continue;} //GO UP
}

0 个答案:

没有答案