如下图所示:对于任意给定的n,顺时针打印如下数据:
3
1 2 3
6 4
5
----------------------------------
4
1 2 3 4
9 10 5
8 6
7
----------------------------------
5
1 2 3 4 5
12 13 14 6
11 15 7
10 8
9
...
...
...
对于这种填充数据来说,其填充原理类似于一个满的二维数组的顺时针填充问题。下面我们来分析一下对于这样的数组的数据填充问题。
根据题目的顺时针填充来说,我们可以把这个问题根据顺时针求解分为:
<1>将这个数组看作一些等边三角形,从外自内的进行分解,例如:n=5时,
1 2 3 4 5 和
12 6 13 14
11 7 15
10 8
9
这两个等边三角形来分析。
<2>然后分别对于每个等边三角形,按顺时针方向来填充。
1,第一行的元素依次为 A[k][j]=A[k][j-1]+1;
2,副对角线上的元素依次为 A[i][s&