zoukankan      html  css  js  c++  java
  • 螺旋遍历矩阵(Go)


    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

    func spiralOrder(matrix [][]int) []int {
        if len(matrix) == 0 {
    		return []int{}
    	}
    	dir := 1
    	row, col := 0, 0
    	top, right, bottom, left := 0, len(matrix[0])-1, len(matrix)-1, 0
    	var res []int
    	for top <= bottom && left <= right {
    		res = append(res, matrix[row][col])
    		switch dir {
    		case 1:
    			if col == right {
    				dir = 2
    				top++
    				row++
    				continue
    			}
    			col++
    		case 2:
    			if row == bottom {
    				dir = 3
    				right--
    				col--
    				continue
    			}
    			row++
    		case 3:
    			if col == left {
    				dir = 4
    				bottom--
    				row--
    				continue
    			}
    			col--
    		case 4:
    			if row == top {
    				dir = 1
    				left++
    				col++
    				continue
    			}
    			row--
    		}
    	}
    	return res
    }
    

      

  • 相关阅读:
    Eclipse 添加行号
    http中 get方法 传送中文参数乱码解决办法
    第一章 java 语言概述
    Python学习
    Python学习
    Python学习
    Python学习
    Python学习
    Python学习
    Python学习
  • 原文地址:https://www.cnblogs.com/lvpengbo/p/14452529.html
Copyright © 2011-2022 走看看