蛇形矩阵:一个n*n的矩阵,矩阵的内容成蛇形。例如
n=3;
矩阵内容:
1 2 3
8 9 4
7 6 5
按行输出为: 1 2 3 8 9 4 7 6 5
n = 4;
矩阵内容:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
按行输出:
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
java实现代码
public static int[][] getSnake(int n) {
int count = 1;
int i = 0, j = 0;
int n2 = n * n;
int[][] snakeArr = new int[n][n];
while (count <= n2) {
// 向右走
while (j < n && snakeArr[i][j] == 0) {
snakeArr[i][j] = count++;
++j;
}
j = j - 1;
// 向下走
while (++i < n && snakeArr[i][j] == 0) {
snakeArr[i][j] = count++;
}
i = i - 1;
// 向左走
while (--j >= 0 && snakeArr[i][j] == 0) {
snakeArr[i][j] = count++;
}
j = j + 1;
// 向上走
while (--i >= 0 && snakeArr[i][j] == 0) {
snakeArr[i][j] = count++;
}
i = i + 1;
j = j + 1;
}
return snakeArr;
}