美文网首页
59. 螺旋矩阵 II

59. 螺旋矩阵 II

作者: justonemoretry | 来源:发表于2021-10-10 12:00 被阅读0次
    image.png

    解法

    class Solution {
        public int[][] generateMatrix(int n) {
            // 旋转圈数
            int loop = n / 2;
            // 旋转圈起始位置
            int l = 0;
            // 自增开始的数值
            int num = 1;
            int[][] res = new int[n][n];
            while (l < loop) {
                int i = l;
                int j = l;
                // 上边,都是左闭右开
                for (; j < n - 1 - l; j++) {
                    res[i][j] = num++;
                }
                // 右边
                for (; i < n - 1 - l; i++) {
                    res[i][j] = num++;
                }
                // 下边
                for (; j > l; j--) {
                    res[i][j] = num++;
                }
                // 左边
                for (; i > l; i--) {
                    res[i][j] = num++;
                }
                l++;
            }
            // 奇数时中间单独填充
            if (n % 2 == 1) {
                res[loop][loop] = num;
            }
            return res;
        }
    }
    

    相关文章

      网友评论

          本文标题:59. 螺旋矩阵 II

          本文链接:https://www.haomeiwen.com/subject/btdholtx.html