[LeetCode]59. Spiral Matrix II

来源:互联网 发布:小学生作文用什么软件 编辑:程序博客网 时间:2024/06/04 18:20

https://leetcode.com/problems/spiral-matrix-ii/

很直观,记录当前状态上下左右四象限范围以及当前方向即可。



public class Solution {    public int[][] generateMatrix(int n) {        int[][] res = new int[n][n];        int rb = 0;        int re = n - 1;        int cb = 0;        int ce = n - 1;        int direct = 1;        int cur = 1;        while (cur <= n * n) {            switch (direct) {                case 1 :                    for (int i = cb; i <= ce; i++) {                        res[rb][i] = cur++;                    }                    rb++;                    direct = 2;                case 2 :                    for (int i = rb; i <= re; i++) {                        res[i][ce] = cur++;                    }                    ce--;                    direct = 3;                case 3 :                    for (int i = ce; i >= cb; i--) {                        res[re][i] = cur++;                    }                    re--;                    direct = 4;                case 4 :                    for (int i = re; i >= rb; i--) {                        res[i][cb] = cur++;                    }                    cb++;                    direct = 1;            }        }        return res;    }}


0 0
原创粉丝点击