package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param matrix int整型二维数组
* @return int整型一维数组
*/
func printMatrix(matrix [][]int) []int {
// write code here
var ret []int
if len(matrix) == 0 {
return ret
}
l, r := 0, len(matrix[0])-1
up, down := 0, len(matrix)-1
for l <= r && up <= down {
for i := l; i <= r; i++ {
ret = append(ret, matrix[up][i])
}
up++
if up > down {
break
}
for i := up; i <= down; i++ {
ret = append(ret, matrix[i][r])
}
r--
if l > r {
break
}
for i := r; i >= l; i-- {
ret = append(ret, matrix[down][i])
}
down--
if up > down {
break
}
for i := down; i >= up; i-- {
ret = append(ret, matrix[i][l])
}
l++
if l > r {
break
}
}
return ret
}