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


    题目来源:

      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

  • 相关阅读:
    什么是Java
    程序有问题解决方法
    面向对象三大特征
    实例变量和局部变量
    内存管理
    常见面试题(更新中)
    多态
    设计规则
    内部类
    编程英语
  • 原文地址:https://www.cnblogs.com/chruny/p/4968746.html
Copyright © 2020-2023  润新知