59. 螺旋矩阵 II

Posted yangbocsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了59. 螺旋矩阵 II相关的知识,希望对你有一定的参考价值。

59. 螺旋矩阵 II

一、题目

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

二、参考代码


class Solution 
    public int[][] generateMatrix(int n) 
        int x1 = 0, y1 = 0;
        int x2 = n-1, y2=n-1;
        int cnt = 1;     // 需要填入矩阵的数字
        int[][] ans = new int[n][n];

        while(cnt <= n*n)
            if(x1 <= x2)
                for(int j = y1; j <= y2; j++)
                    ans[x1][j] = cnt++;
                
                // 上边界下移
                x1 ++;
            

            if(y1 <= y2)
                for(int i = x1; i <= x2; i++)
                    ans[i][y2] = cnt++;
                
                // 右边界左移
                y2 --;
            

            if(x1 <= x2)
                for(int j = y2; j >= y1; j--)
                    ans[x2][j] = cnt++;
                
                // 下边界 上移
                x2 --;
            

            if(y1 <= y2)
                for(int i = x2; i >= x1; i--)
                    ans[i][y1] = cnt++;
                
                // 左边界 右移
                y1 ++;
            
        
        return ans;
    


以上是关于59. 螺旋矩阵 II的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-59-螺旋矩阵 II

Leetcode 59. 螺旋矩阵 II(Spiral Matrix II)

59. 螺旋矩阵 II-LeetCode

Java算法 每日一题 编号59:螺旋矩阵II

Java算法 每日一题 编号59:螺旋矩阵II

Java算法 每日一题 编号59:螺旋矩阵II