题解 | #螺旋矩阵#

螺旋矩阵

https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

package main

/**
 *
 * @param matrix int整型二维数组
 * @return int整型一维数组
 */
func spiralOrder(matrix [][]int) []int {
	n := len(matrix)
	res := make([]int, 0)
	if n <= 0 {
		return res
	}
	m := len(matrix[0])
	dx := []int{0, 1, 0, -1}
	dy := []int{1, 0, -1, 0}
	ranX := []int{0, n - 1}
	ranY := []int{0, m - 1}
	dir := 0
	for i, j := 0, 0; ranX[0] <= ranX[1] && ranY[0] <= ranY[1]; {
		res = append(res, matrix[i][j])
		if dir == 0 && j == ranY[1] {
			dir = 1
			//ranY[1]--
			ranX[0]++
		} else if dir == 1 && i == ranX[1] {
			dir = 2
			ranY[1]--
		} else if dir == 2 && j == ranY[0] {
			dir = 3
			ranX[1]--
		} else if dir == 3 && i == ranX[0] {
			dir = 0
			ranY[0]++
		}
		i += dx[dir]
		j += dy[dir]
	}
	return res
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:35
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务