如何在旅途中解决螺旋矩阵

https://leetcode.com/problems/spiral-matrix/ golang implement. the result as follow:

Run Code Status: Runtime Error

Run Code Result: ×

Your input

[] Your answer

Expected answer

[] Show Diff

why [] is the test case ,it's just a one-dimensional slice ?

my code is :

func sprial(begin_r, begin_c, row, col int, matrix [][]int) []int {
s := make([]int, col*row, col*row+10)
k := 0
if row == 1 && col == 1 {
    s[k] = matrix[begin_r][begin_c]

    return s
} else if row == 1 {
    return matrix[begin_r][begin_c : col-1]
} else if col == 1 {
    return matrix[begin_r : row-1][begin_c]
} else {
    for i := begin_c; i < col; i++ {
        s[k] = matrix[begin_r][i]
        k++
    }
    for i := begin_r + 1; i < row; i++ {
        s[k] = matrix[i][col-1]
        k++
    }
    for i := col - 2; i >= begin_c; i-- {
        s[k] = matrix[row-1][i]
        k++
    }
    for i := row - 2; i >= begin_r+1; i-- {
        s[k] = matrix[i][begin_c]
        k++
    }

    return s[:k-1]
}
}

func spiralOrder(matrix [][]int) []int {
m := len(matrix)
n := len(matrix[0])
i := 0
j := 0
//  var rS []int
k := 0

//s1 := make([]int, m*n, m*n)

var s1 = []int{}
for {
    if m <= 0 || n <= 0 {
        break
    }
    s := sprial(i, j, m, n, matrix)
    if k == 0 {
        s1 = s

    } else {

        s1 = append(s1, s...)

    }

    i++
    j++
    m -= 2
    n -= 2
    k++
}
return s1
}