螺旋填充数组
例如这样一个4行5列的数组
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
可以用以下代码填充
int col = 0; //列
int row = 0; //行
int up = 0, down = n, left = 0, right = m;
while (true) {
for (int col = left; col < right; col++) {
grid[up][col] = num;
num++;
}
up++;
if (up == down)
break;
for (int row = up; row < down; row++) {
grid[row][right - 1] = num;
num++;
}
right--;
if (left == right)
break;
for (int col = right - 1; col >= left; col--) {
grid[down - 1][col] = num;
num++;
}
down -= 1;
if (up == down)
break;
for (int row = down - 1; row >= up; row--) {
grid[row][left] = num;
num++;
}
left++;
if (left == right)
break;
}