产生一个螺旋矩阵

来源:互联网 发布:阿里云ecs搭建ss 编辑:程序博客网 时间:2024/05/20 01:10
public class Solution {        public int[][] generateMatrix(int n) {        if (n == 0)            return new int[0][0];        int[][] matrix = new int[n][n];        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;    }    }
想法很简单,就是看对于边界条件的判断。
0 0
原创粉丝点击