顺时针输出二维数组
最近面试,做了这样一道题目:
给定一个N*N的整型二维数组,要求以(0,0)为起点,由外层向内层,按顺时针方向依次输出全部元素,如下数组的输出应为1,2,3,6,9,8,7,4,5.
1 2 3
4 5 6
7 8 9
解题思路
顺时针输出全部元素,第一步就要先打印出第一行元素(即array[0][0]~array[0][n-1]);
第二步打印出最后一列元素(即array[1][n-1]~array[n-1][n-1]);
第三步打印出最后一行(即array[n-1][n-2]~array[n-1][0]);
第四步打印出第一列(即array[0][n-2]~array[1][0]).
至此,已经将二维数组的最外围打印出来了,将最外围的数组元素去除之后,可以发现里面的数组是一个新的二维数组,所以,可以用递归来实现。
代码主要实现:
public static void clockWise(int[][] data) {
//行长度
int row = data.length;
//列长度
int column = 0;
for (int i = 0; i < row; i++) {
column = data[i].length;
}
//若N*N二维数组只有一个元素时
if (row == 1 &&