package main
/**
*
* @param matrix int整型二维数组
* @return int整型一维数组
*/
func spiralOrder( matrix [][]int ) []int {
// write code here
if matrix==nil || len(matrix)==0 || len(matrix[0])==0{
return []int{}
}
var n = len(matrix[0])
var m = len(matrix)
var left = 0//左边界
var right = n-1//右边界
var up = 0 //上边界
var down = m-1//下边界
var total = n*m//总的元素个数
var res = []int{}
for total>0{
for i:=left;i<=right&&total>0;i++{
res = append(res, matrix[up][i])
total--
}
up++
for i:=up;i<=down&&total>0;i++{
res = append(res, matrix[i][right])
total--
}
right--
for i:=right;i>=left&&total>0;i--{
res = append(res, matrix[down][i])
total--
}
down--
for i:=down;i>=up&&total>0;i--{
res = append(res, matrix[i][left])
total--
}
left++
}
return res
}
原文:https://www.cnblogs.com/pangqianjin/p/14639631.html