首页 > 编程语言 > 详细

[LeetCode]题解(python):054-Spiral Matrix

时间:2015-11-16 15:33:01      阅读:282      评论:0      收藏:0      [点我收藏+]

题目来源:

  https://leetcode.com/problems/spiral-matrix/


 

题意分析:

  输入一个m×n的数字矩阵。将这个矩阵按照螺旋方向输成一列。比如:

[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]
输出[1,2,3,6,9,8,7,4,5]

 

题目思路:

  这道题目只需要模拟这个过程。分四步,第一步行左到右,第二步从上到下,第三步右到左,最后一步下到上。


 

代码(python):

  

技术分享
class Solution(object):
    def spiralOrder(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: List[int]
        """
        size = len(matrix)
        if size == 0: return []
        m = len(matrix[0])
        if m == 0: return []
        r,l = 0,0; size -= 1;m -= 1
        ans = []
        while r <= m and l <= size:
            for i in range(r,m + 1):
                ans.append(matrix[l][i])
            l += 1
            if l > size:
                break
            for i in range(l,size + 1):
                ans.append(matrix[i][m])
            m -= 1;i = m
            if m < r:
                break
            while i >= r:
                ans.append(matrix[size][i]);i -= 1
            size -= 1;i = size
            if size < l:
                break
            while i >= l:
                ans.append(matrix[i][r]); i -= 1
            r += 1
        return ans
View Code

 


 

转载请注明出处:http://www.cnblogs.com/chruny/p/4968746.html

[LeetCode]题解(python):054-Spiral Matrix

原文:http://www.cnblogs.com/chruny/p/4968746.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!