题意: 蛇形矩阵...去年秋招TX笔试有这题
思路: 观察矩阵,例如n=5,按数字递增的方向,循环次数有 5,4,4,3 - 3,2,2,1 - 1,0这样的规律
public class Solution {
public int[][] generateMatrix(int n) {
int a[][] = new int[n][n];
int row = 0,com = 0,cur = 1;//row控制行,com控制列,cur为递增的数字
int i= 0,j = 0,k= 0;
while(n>0){
for (k = 0; k < n; k++) {
a[row][com++] = cur++;
}//left
n--; row++;com--;
for ( k = 0; k< n; k++) {
a[row++][com] = cur++;
}//down
com--;row--;
for (k = 0; k <n ; k++) {
a[row][com--] = cur++;
}//right
n--;com++;row--;
for (k = 0; k < n; k++) {
a[row--][com] = cur++;
}//up
row++;com++;
}
return a;
}
}