当前位置:   article > 正文

LeetCode刷题(python版)——Topic54螺旋矩阵_leetcode 螺旋矩阵 python

leetcode 螺旋矩阵 python

一、题设

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

二、基本思路

        设置上下左右边界,循环进行右下左上的遍历操作,同时每经历一次右下左上则更新一次边界范围。当有下边界>上边界或者右边界<左边界的时候则为全部遍历完成。

      

三、代码实现

  1. def spiralOrder(self, matrix):
  2. res = []
  3. if not matrix:
  4. return res
  5. left,right = 0 , len(matrix[0])-1
  6. up,behind = 0 , len(matrix)-1
  7. while True:
  8. # 右
  9. for i in range(left,right+1):
  10. res.append(matrix[up][i])
  11. up += 1
  12. if up > behind:
  13. break
  14. # 下
  15. for i in range(up,behind+1):
  16. res.append(matrix[i][right])
  17. right -= 1
  18. if right < left:
  19. break
  20. # 左
  21. for i in range(right,left-1,-1):
  22. res.append(matrix[behind][i])
  23. behind -= 1
  24. if behind < up:
  25. break
  26. # 右
  27. for i in range(behind,up-1,-1):
  28. res.append(matrix[i][left])
  29. left += 1
  30. if left > right:
  31. break
  32. return res
'
运行

四、效率总结

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/1014478
推荐阅读
相关标签
  

闽ICP备14008679号