美文网首页
8.螺旋矩阵

8.螺旋矩阵

作者: 你好宝宝 | 来源:发表于2020-03-19 16:13 被阅读0次

题目描述

给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。

思路

总共遍历的时候要通过四条路径

  • left->right
  • up->button
  • right->left
  • button->up
    其中第一和第三条路径可能行重合,第二和第四掉路径可能列重合。
    分别判断起始行和起始列是否重合即可。
示例1:
输入:
[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]

示例2:
输入:
[
  [1, 2, 3, 4],
  [5, 6, 7, 8],
  [9,10,11,12]
]
输出: [1,2,3,4,8,12,11,10,9,5,6,7]

import math
class Solution:
    def spiralOrder(self, matrix):
        if not matrix:
            return []

        loop=math.ceil(min(len(matrix),len(matrix[0]))/2)#计算循环的次数
        m=len(matrix)
        n=len(matrix[0])
        result=[]
        for i in range(loop):
            for j in range(i,n-i):
                result.append(matrix[i][j])

            for k in range(i+1,m-i):
                result.append(matrix[k][n-i-1])
            
            for j in reversed(range(i,n-i-1)):
                if m-i-1 == i:
                    break
                result.append(matrix[m-i-1][j])
            
            for k in reversed(range(i+1,m-i-1)):
                if i==n-i-1:
                    break
                result.append(matrix[k][i])
            
            loop +=1
        
        return result

相关文章

  • 8.螺旋矩阵

    题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。...

  • Python实现螺旋矩阵

    螺旋矩阵 什么是螺旋矩阵? 螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大...

  • 螺旋矩阵

    螺旋矩阵 1.想法: 对于矩阵的螺旋我们可以规约为4个方向 2.代码:

  • 螺旋矩阵

    递归 非递归

  • 螺旋矩阵

    给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1...

  • 螺旋矩阵

    题目描述:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。...

  • 螺旋矩阵

    给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1...

  • 螺旋矩阵

    原文地址,我的个人博 1.题目 2.分析 上图展示了一轮完整的顺时针螺旋遍历的过程,整个过程可以分为如图所示的四个...

  • 螺旋矩阵

    写在前面 2019年,年初到蚂蚁金服面试测试工程师的职位,现场有一道笔试题是求螺旋矩阵,当时大概和面试官说了一下思...

  • 螺旋矩阵

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

网友评论

      本文标题:8.螺旋矩阵

      本文链接:https://www.haomeiwen.com/subject/jillyhtx.html