【LeetCode】59. 螺旋矩阵 II

题目:59. 螺旋矩阵 II

解题思路

  1. 手动模拟螺旋矩阵,分别实现四个方向的代码,将数组依次填入数组中即可
  2. 需要注意的是,如果n为奇数,说明最后只剩下中间的一个位置,将最后一个数直接填入即可;若n为偶数,则正好能够遍历n/2遍
class Solution {
    public int[][] generateMatrix(int n) {
        int[][] res = new int[n][n];
        int count = 1;
        int start = 0;
        int loop = 0;
        int i, j;

        while(loop++ < n/2) {
            for(j=start; j<n-loop; j++) {
                res[start][j] = count++;
            }

            for(i=start; i<n-loop; i++) {
                res[i][j] = count++;
            }

            for(; j>=loop; j--) {
                res[i][j] = count++;
            }

            for(; i>=loop; i--) {
                res[i][j] = count++;
            }
            start++;
        }

        if(n % 2 == 1) {
            res[start][start] = count;
        }

        return res;
    }
}

参考资料:59. 螺旋矩阵 II

posted @   是你亦然  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示