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

《剑指offer》---顺时针打印矩阵

时间:2018-05-29 20:45:14      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:bre   IV   strong   个数   ret   break   div   matrix   display   

本文算法使用python3实现


1. 问题1

1.1 题目描述:

??输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
??输入矩阵\[ \begin{bmatrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \\ 13 & 14 & 15 & 16 \\ \end{bmatrix} \]
??输出为1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10
??时间限制:1s;空间限制:32768K


1.2 思路描述:

??(1)将矩阵第一行加入result中,同时删除第一行。
??(2)对剩余矩阵进行逆时针旋转90度,继续取其第一行
??(3)直到矩阵被删除为空为止。


1.3 程序代码:

class Solution:
    def printMatrix(self, matrix):
         # 每次将矩阵第一行加入result列表
        result = []
        while matrix:
            result += matrix.pop(0)
            if not matrix :
                break
            matrix = self.turnMatrix(matrix)
        return result

    def turnMatrix(self, matrix):
        # 对矩阵进行逆时针旋转90度操作
        rows = len(matrix)
        cols = len(matrix[0])

        resMatrix = []
        for j in range(cols):
            temp = []
            for i in range(rows):
                temp.append(matrix[i][j])
            resMatrix.append(temp)
        resMatrix.reverse()
        return resMatrix

《剑指offer》---顺时针打印矩阵

标签:bre   IV   strong   个数   ret   break   div   matrix   display   

原文地址:https://www.cnblogs.com/lliuye/p/9107425.html

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