leetcode 59. 螺旋矩阵 II-java实现

题目所属分类

螺旋矩阵II
可以对比之前的leetcode 54. 螺旋矩阵-java实现

原题链接

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

代码案例:在这里插入图片描述

题解

class Solution {
    public int[][] generateMatrix(int n) {
        int[][] ans = new int[n][n];
        int [] dx = {0,1,0,-1};
        int[] dy = {1,0,-1,0};
        boolean [][] st = new boolean[n][n];
        for(int i = 1 , x = 0 , y =0 , d = 0;i <= n*n ; i++){
            ans[x][y] = i ;
            st[x][y] = true ;
            int a  = dx[d] + x ;
            int b = dy[d] + y ;           
            if(a < 0 || a >= n || b < 0 || b >= n || st[a][b]){
                d = (d+1)% 4 ;
                 a  = dx[d] + x ;
                 b = dy[d] + y ;
            }
            x = a ;
            y  = b ;
        }
        return ans ;
    }
}
posted @   依嘫  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示