Python3实现的旋转矩阵图像算法示例
本文实例讲述了Python3实现的旋转矩阵图像算法。分享给大家供大家参考,具体如下:
问题:
给定一个n×n的二维矩阵表示一个图像。
将图像顺时针旋转90度。
方案一:先按X轴对称旋转,再用zip()解压,最后用list重组。
#-*-coding:utf-8-*- #!python3 classSolution: defrotate(self,matrix): """ :typematrix:List[List[int]] :rtype:voidDonotreturnanything,modifymatrixin-placeinstead. """ matrix[:]=map(list,zip(*matrix[::-1])) returnmatrix if__name__=='__main__': #测试代码 matrix=[ [1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ] solution=Solution() result=solution.rotate(matrix) print(result)
运行结果:
[[13,9,5,1],[14,10,6,2],[15,11,7,3],[16,12,8,4]]
方案二:找到规律,用原矩阵数据赋值
#-*-coding:utf-8-*- #!python3 classSolution: defrotate(self,matrix): """ :typematrix:List[List[int]] :rtype:voidDonotreturnanything,modifymatrixin-placeinstead. """ m=matrix.copy() n=len(matrix) foriinrange(n): matrix[i]=[m[j][i]forjinrange(n-1,-1,-1)] return if__name__=='__main__': #测试代码 matrix=[ [1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ] solution=Solution() result=solution.rotate(matrix) print(result)
运行结果:
[[13,9,5,1],[14,10,6,2],[15,11,7,3],[16,12,8,4]]
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。