diff --git a/problems/0059.螺旋矩阵II.md b/problems/0059.螺旋矩阵II.md index 78336d5a..d9a656b9 100644 --- a/problems/0059.螺旋矩阵II.md +++ b/problems/0059.螺旋矩阵II.md @@ -300,6 +300,61 @@ function generateMatrix(n: number): number[][] { Go: +```go +package main + +import "fmt" + +func main() { + n := 3 + fmt.Println(generateMatrix(n)) +} + +func generateMatrix(n int) [][]int { + startx, starty := 0, 0 + var loop int = n / 2 + var center int = n / 2 + count := 1 + offset := 1 + res := make([][]int, n) + for i := 0; i < n; i++ { + res[i] = make([]int, n) + } + for loop > 0 { + i, j := startx, starty + + //行数不变 列数在变 + for j = starty; j < n-offset; j++ { + res[startx][j] = count + count++ + } + //列数不变是j 行数变 + for i = startx; i < n-offset; i++ { + res[i][j] = count + count++ + } + //行数不变 i 列数变 j-- + for ; j > starty; j-- { + res[i][j] = count + count++ + } + //列不变 行变 + for ; i > startx; i-- { + res[i][j] = count + count++ + } + startx++ + starty++ + offset++ + loop-- + } + if n%2 == 1 { + res[center][center] = n * n + } + return res +} +``` + ```go func generateMatrix(n int) [][]int { top, bottom := 0, n-1