59. Spiral Matrix II(螺旋矩阵2) 数组/medium


1.Description

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


2.Example

在这里插入图片描述

输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]

3.Solution

一圈一圈地分别遍历矩阵的上、右、下、左四个边。设定一个seed值,毎向前移动一格就自增1.

class Solution {
    
    
    public int[][] generateMatrix(int n) {
    
    
    	int[][] maxtrix = new int[n][n];
    	int seed = 1;
    	for(int q=0;q<n/2;q++) {
    
    //i是圈数
    		for(int j=q;j<n-1-q;j++) {
    
    
    			maxtrix[q][j] = seed;
    			seed++;
    		}
    		for(int i=q;i<n-1-q;i++) {
    
    
    			maxtrix[i][n-1-q] = seed;
    			seed++;
    		}
    		for(int j=n-1-q;j>q;j--) {
    
    
    			maxtrix[n-1-q][j] = seed;
    			seed++;
    		}
    		for(int i=n-1-q;i>q;i--) {
    
    
    			maxtrix[i][q] = seed;
    			seed++;
    		}
    	}
    	if(n%2==1) {
    
    
    		maxtrix[n/2][n/2] = seed;
    	}
    	return maxtrix;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45736160/article/details/114895702
今日推荐