首页 > 其他 > 详细

Leetcode刷题记录 旋转矩阵

时间:2019-12-23 10:23:19      阅读:97      评论:0      收藏:0      [点我收藏+]

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

class Solution(object):
    def spiralOrder(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: List[int]
        """
        if matrix == []:
            return []
        results = [matrix[0][0]]
        matrix[0][0] = None
        column = 0
        row = 0
        c_max = len(matrix[0]) - 1
        r_max = len(matrix) - 1
        while True:
            while column + 1 <= c_max and matrix[row][column + 1] != None:
                column += 1
                results.append(matrix[row][column])
                matrix[row][column] = None
            if row + 1 > r_max or matrix[row + 1][column] == None:
                break

            while row + 1 <= r_max and matrix[row + 1][column] != None:
                row += 1
                results.append(matrix[row][column])
                matrix[row][column] = None
            if column - 1 < 0 or matrix[row][column - 1] == None:
                break

            while column - 1 >= 0 and matrix[row][column - 1] != None:
                column -= 1
                results.append(matrix[row][column])
                matrix[row][column] = None
            if row - 1 < 0 or matrix[row - 1][column] == None:
                break

            while row - 1 >= 0 and matrix[row - 1][column] != None:
                row -= 1
                results.append(matrix[row][column])
                matrix[row][column] = None
            if column + 1 > c_max or matrix[row][column + 1] == None:
                break
        return results

Leetcode刷题记录 旋转矩阵

原文:https://www.cnblogs.com/weswes/p/12081872.html

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