题目:
螺旋打印二维数组。
解题思路:
问题点:怎么构建一个螺旋的二维数组
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
分析:
1、构建一个二维数组,按照顺时针的方向依次填入矩阵中1、2、3、4、5、6、7、8、9……
- 问题拆分:
- 先搞最外面一层,再搞下一层,依次类推,直到数组被填充完,重点是怎么判断边界和方向
2、边界判断
- 矩阵:matrix;矩阵大小:n(n*n矩阵全部初始化为0);行:i表示; 列:j表示(i=0, j=0);方向:上下左右
- 边界判断:
右边界:matrix[ i ][ j+1 ] == 0; // 行i不变,列j每次+1(==0说明不到右边界,如果到了右边界,行i+1,列不变,方向改成下)