题目描述
解题思路
代码演示:
package com.kami.leetcode.arrayStudy;
/**
* @Description: TODO
* @author: scott
* @date: 2021年12月02日 9:56
*/
public class L_59 {
public int[][] generateMatrix(int n){
//创建一个二维数组
int[][] res = new int[n][n];
//左边
int left = 0;
//右边
int right = n - 1;
//上面
int up = 0;
//下面
int bottom = n - 1;
//当前填充的数
int curNum = 1;
//循环n / 2次
while (curNum <= n * n){
//左 ——> 右
for(int i = left; i <= right; i++){
res[up][i] = curNum++;
}
up++;
//上 ——> 下
for(int j = up; j <= bottom; j++){
res[j][right] = curNum++;
}
right--;
//右 ——> 左
for(int i = right; i >= left; i--){
res[bottom][i] = curNum++;
}
bottom--;
//从下 ——> 上
for(int j = bottom; j >= up; j--){
res[j][left] = curNum++;
}
left++;
}
return res;
}
}