给出一个二维数组,将其逆序打印
描述:
二位数组:
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
将其按照逆时针的顺序打出来如下:
1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
思路
可以看出,每次打印出一次,都是将数组按照逆时针的顺序所打印,然后再打印里面的一层。最终得到结果。
代码:
public void printArray(int[][] arr) {
int leftrow = 0, leftcol = 0, rightrow = arr.length - 1, rightcol = (arr[0].length) - 1;
while (leftrow <= rightrow && leftcol <= rightcol) {
int r = leftrow;
int c = leftcol;
while (c <= rightcol) {
System.out.print(arr[r][c++] + "\t");
}
//复位,中和上一轮多加的一次
c = rightcol;