[LeetCode] 54. 螺旋矩阵

54. 螺旋矩阵
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]

解法:用变量left, right, top, bottom记录左,右,顶,底。然后按照左到右,顶到底,右到左,底到顶的顺序循环,把遍历的元素加入到结果。

class Solution:
    def spiralOrder(self, matrix):
        result = []
        if not matrix:
            return result
        
        left, right, top, bottom = 0, len(matrix[0]) - 1, 0, len(matrix) - 1
        while left <= right and top <= bottom:
            for i in range(left, right+1):
                result.append(matrix[top][i])
            for j in range(top+1, bottom):
                result.append(matrix[j][right])
            for i in range(right, left-1, -1):
                if top < bottom:
                    result.append(matrix[bottom][i])
            for j in range(bottom-1, top, -1):
                if left < right:
                    result.append(matrix[j][left])
            left, right, top, bottom = left+1, right-1, top+1, bottom-1
        return result
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,994评论 0 13
  • “打是亲,骂是爱”这句话不知缘从何起,广为流传。这句话原意是指父母对子女的教育虽然严厉苛刻,却是因为深爱孩子。出处...
    田花小姐姐阅读 574评论 2 0
  • 常闻昙花夜芬芳 今见丝瓜傍晚开 夜伴昙花共暗香 清晨合苞齐调谢
    凡高潇湘花子阅读 285评论 0 1
  • 小青柑~春天 入肝 黄色~脾 橘科类 散发着阵阵艾草味儿 冬,早睡晚起 春,早睡早起 养阳气,排怒气 夏...
    王會菱阅读 794评论 0 0
  • 每个人的人生都在做一件事情——追求幸福,所以我认为幸福人生也是可以有一些共同的规律的。至少列出这些计划,能...
    红小杨阅读 1,235评论 4 5