码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-hard-array-54. Spiral Matrix-NO

时间:2019-06-17 10:42:35      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:range   最大   循环   判断   break   mat   color   and   定位   

mycode

思路:这种方格图一定要预先设置定位的变量,例如最大的长、宽,变化中的长、宽,在while循环中也要不断判断是否满足break条件

class Solution(object):
    def spiralOrder(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: List[int]
        """
        m = len(matrix)
        if m == 0 : return []   # []
        n = len(matrix[0])
        if n == 0 : return []  #[[],[]]
        m = m - 1; n = n - 1
        r ,l = 0 ,0 
        res = []
        #当r == n的时候,也还是要循环
        while r <= n and l <= m:
            for i in range(r,n+1):
                res.append(matrix[l][i])
            l = l + 1
            if l > m : break
            for i in range(l,m+1):
                res.append(matrix[i][n])
            n = n -1 ; i = n
            if n < r : break
            while i >= r:
                res.append(matrix[m][i])
                i -= 1
            m = m -1 ; i = m
            if m < l : break
            while i >= l:
                res.append(matrix[i][r])
                i -= 1
            r += 1
        return res
                

 

leetcode-hard-array-54. Spiral Matrix-NO

标签:range   最大   循环   判断   break   mat   color   and   定位   

原文地址:https://www.cnblogs.com/rosyYY/p/11038203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!