Leetcode_Python 54 螺旋矩阵

简介: 解题思路以每层圈为单位,遍历矩阵

解题思路

以每层圈为单位,遍历矩阵矩阵层数计算方式为:lay_num = (min(width,length)+1)//2

每层分为从左到右、从上到下、从右到左、从下到上四个循环

注意每一层循环的开始位置和结束位置是解决本问题的关键


当某一层只有一行 或者 一列的时候(有可能都满足,即只有一个元素)

就不需要再执行第三个 或者 第四个和循环,否则会被重复输出。

代码

class Solution(object):
    def spiralOrder(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: List[int]
        """
        import math
        if matrix == []:
            return matrix
        list1 = []
        wide = len(matrix[0])
        high = len(matrix)
        rounds = (min(wide,high)+1)//2
        for i in range(rounds):  #轮次逐层计算  
            for j in range(4):  #表示4个边,我们顺时针计算
                if j == 0:  #表示上边
                    list1 = list1 + [matrix[i][z] for z in range(i,wide - i)]
                elif j == 1:  #表示右边
                    list1 = list1 + [matrix[z][wide- i -1] for z in range(i + 1,high - i)]
                elif j == 2 and high - i -1 != i: #下方
                    list1 = list1 + [matrix[high - i -1][z] for z in range(wide - i - 2,i-1,-1)]
                elif j == 3 and wide - i - 1 != i: #左边
                    list1 = list1 + [matrix[z][i] for z in range(high - i - 2,i,-1)]     
        return list1
相关文章
【Leetcode -2181.合并零之间的节点- 2326.螺旋矩阵Ⅳ】
【Leetcode -2181.合并零之间的节点- 2326.螺旋矩阵Ⅳ】
78 0
|
2月前
|
C++
Leetcode第54题(螺旋矩阵)
这篇文章介绍了LeetCode第54题“螺旋矩阵”的解题思路和C++的实现代码,该题目要求按照顺时针螺旋顺序返回给定矩阵中的所有元素。
20 1
Leetcode第54题(螺旋矩阵)
|
2月前
【LeetCode 05】螺旋矩阵II总结
【LeetCode 05】螺旋矩阵II总结
23 0
|
4月前
|
算法
LeetCode第59题螺旋矩阵 II
LeetCode第59题"螺旋矩阵 II"的解题方法,通过模拟螺旋填充过程,一圈一圈从外到内按顺序填充数字,直到完成整个矩阵的构建。
LeetCode第59题螺旋矩阵 II
|
4月前
|
存储 算法
LeetCode第54题螺旋矩阵
LeetCode第54题"螺旋矩阵"的解题方法,通过模拟从外到内的螺旋遍历过程,并利用方向向量控制遍历方向的转换,有效输出矩阵的螺旋顺序。
LeetCode第54题螺旋矩阵
|
机器学习/深度学习 算法
代码随想录Day02 数组基础2 leetcode T977有序数组的平方, T209 长度最小的子数组,T59 螺旋矩阵II
代码随想录Day02 数组基础2 leetcode T977有序数组的平方, T209 长度最小的子数组,T59 螺旋矩阵II
59 0
|
6月前
leetcode54螺旋矩阵题解
leetcode54螺旋矩阵题解
33 2
|
6月前
|
存储 算法 数据挖掘
python5种算法模拟螺旋、分层填充、递归、迭代、分治实现螺旋矩阵ll【力扣题59】
python5种算法模拟螺旋、分层填充、递归、迭代、分治实现螺旋矩阵ll【力扣题59】
|
6月前
|
算法 机器人 数据挖掘
LeetCode题目54:螺旋矩阵【python4种算法实现】
LeetCode题目54:螺旋矩阵【python4种算法实现】
|
6月前
|
存储 算法
力扣经典150题第三十五题:螺旋矩阵
力扣经典150题第三十五题:螺旋矩阵
23 0