您的位置:首页 > 其它

产生一个螺旋矩阵

2015-10-03 11:38 363 查看
public class Solution {

public int[][] generateMatrix(int n) {
if (n == 0)
return new int[0][0];
int[][] matrix = new int

;
int up = 0, down = matrix.length - 1;
int total = 1;
while (up < down) {
total = genetare(matrix, up, down, total);
up++;
down--;
}
if (up == down)
matrix[up][up] = total;

return matrix;
}

public int genetare (int[][] matrix, int up, int down, int total) {
for (int i = up; i <= down; i++)
matrix[up][i] = total++;
total--;
for (int i = up; i <= down; i++)
matrix[i][down] = total++;
total--;
for (int i = down; i >= up ; i--)
matrix[down][i] = total++;
total--;
for (int i = down; i > up ; i--)
matrix[i][up] = total++;

return total;
}

}
想法很简单,就是看对于边界条件的判断。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: