题解 | #顺时针打印矩阵#

顺时针打印矩阵

https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * @param matrix int整型二维数组
 * @return int整型一维数组
 */
func printMatrix(matrix [][]int) []int {
	// write code here
	// 每次把矩阵的第一行加入,
  	// 然后删除第一行,逆时针旋转90度
	var res = make([]int, 0)
	for len(matrix) > 0 {
		for i := 0; i < len(matrix[0]); i++ {
			res = append(res, matrix[0][i])
		}
		matrix = matrix[1:]
		matrix = rotate(matrix)
	}

	return res
}

// 逆时针旋转90度
func rotate(matrix [][]int) [][]int {
	var res [][]int

	if len(matrix) == 0 {
		return res
	}

	for col := len(matrix[0])-1; col > -1; col-- {
		var arr []int
		for row := 0; row < len(matrix);row++ {
			arr = append(arr, matrix[row][col])
		}
		res = append(res, arr)
	}
	return res
}

全部评论

相关推荐

牛客737698141号:他们可以看到在线简历的。。。估计不合适直接就拒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务