算法训练|螺旋矩阵II

在这里插入图片描述
在这里插入图片描述

这个题目是一道模拟数组的题目,本身没有什么高深的算法,主要是考察用代码描述抽象事物的能力,根据数组的边界可以确定上、左、下、右的边界,每一次的for循环填充一条边。

class Solution {
    
    
    public int[][] generateMatrix(int n) {
    
    
        int[][] array = new int[n][n];
        int up = 0,down = n-1,left = 0,right = n-1,index = 1;
        while(index <= n*n){
    
    
            for(int i = left;i<=right;i++){
    
    
                array[up][i] = index++;
            }
            up++;
            for(int i = up;i<=down;i++){
    
    
                array[i][right] = index++;
            }
            right--;
            for(int i = right;i>=left;i--){
    
    
                array[down][i] = index++;
            }
            down--;
            for(int i = down;i>=up;i--){
    
    
                array[i][left] = index++;
            }
            left++;
        }
        return array;
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45394002/article/details/115315503