Hyplus目录
Java
import java.util.Arrays;
/**
* <a href="https://leetcode.cn/problems/spiral-matrix-ii/">Spiral Matrix II</a>
* 数组;矩阵;模拟
*/
class Solution {
public int[][] generateMatrix(int n) {
int[][] res = new int[n][n];
int cur = 1;
int i = 0, j = 0;
while (cur <= n * n) {
while (j < n && res[i][j] == 0) {
res[i][j++] = cur++;
}
j--;
i++;
while (i < n && res[i][j] == 0) {
res[i++][j] = cur++;
}
i--;
j--;
while (j >= 0 && res[i][j] == 0) {
res[i][j--] = cur++;
}
j++;
i--;
while (i >= 0 && res[i][j] == 0) {
res[i--][j] = cur++;
}
i++;
j++;
}
return res;
}
}
Go
func generateMatrix(n int) [][]int {
res := make([][]int, n)
for i := 0; i < n; i++ {
res[i] = make([]int, n)
}
cur := 1
i, j := 0, 0
for cur <= n*n {
for j < n && res[i][j] == 0 {
res[i][j] = cur
cur++
j++
}
j--
i++
for i < n && res[i][j] == 0 {
res[i][j] = cur
cur++
i++
}
i--
j--
for j >= 0 && res[i][j] == 0 {
res[i][j] = cur
cur++
j--
}
j++
i--
for i >= 0 && res[i][j] == 0 {
res[i][j] = cur
cur++
i--
}
i++
j++
}
return res
}
JavaScript
/**
* @param {number} n
* @return {number[][]}
*/
var generateMatrix = function (n) {
let res = new Array(n).fill(0).map(() => new Array(n).fill(0));
let cur = 1;
let i = 0, j = 0;
while (cur <= n * n) {
while (j < n && res[i][j] === 0) {
res[i][j++] = cur++;
}
j--;
i++;
while (i < n && res[i][j] === 0) {
res[i++][j] = cur++;
}
i--;
j--;
while (j >= 0 && res[i][j] === 0) {
res[i][j--] = cur++;
}
j++;
i--;
while (i >= 0 && res[i][j] === 0) {
res[i--][j] = cur++;
}
i++;
j++;
}
return res;
};
PHP
class Solution {
/**
* @param Integer $n
* @return Integer[][]
*/
function generateMatrix(int $n) {
$res = array_fill(0, $n, array_fill(0, $n, 0));
$cur = 1;
$i = $j = 0;
while ($cur <= $n * $n) {
while ($j < $n && $res[$i][$j] == 0) {
$res[$i][$j++] = $cur++;
}
$j--;
$i++;
while ($i < $n && $res[$i][$j] == 0) {
$res[$i++][$j] = $cur++;
}
$i--;
$j--;
while ($j >= 0 && $res[$i][$j] == 0) {
$res[$i][$j--] = $cur++;
}
$j++;
$i--;
while ($i >= 0 && $res[$i][$j] == 0) {
$res[$i--][$j] = $cur++;
}
$i++;
$j++;
}
return $res;
}
}