面试题之顺时针打印矩阵,Python实现,供大家参考,具体内容如下

问题描述:

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,输入如下矩阵:

则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

思路:每次打印并删除矩阵的第一行,然后将矩阵逆时针翻转90度,直至打印出全部结果

具体代码实现如下:

# coding:utf-8

class Solution(object):

def printMatrix(self, matrix):

# 打印矩阵

result = []

while matrix:

result += matrix.pop(0)

if matrix:

matrix = self.rotate(matrix)

return result

def rotate(self, matrix):

# 逆时针旋转矩阵

row = len(matrix)

col = len(matrix[0])

# 存放旋转后的矩阵

new_matrix = []

# 行列调换

for i in range(col):

new_line = []

for j in range(row):

new_line.append(matrix[j][col-1-i])

new_matrix.append(new_line)

return new_matrix

if __name__ == '__main__':

# 测试代码

matrix = [

[1,2,3,4],

[5,6,7,8],

[9,10,11,12],

[13,14,15,16]

]

solution = Solution()

result = solution.printMatrix(matrix)

print(result)

如有错误,欢迎指正和交流。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

python将矩阵顺时针旋转90度_python实现顺时针打印矩阵相关推荐

  1. python将矩阵顺时针旋转90度_python 二维数组90度旋转的方法

    如下所示: #!/usr/bin/env python #-*- coding: utf-8 -*- """ [0, 1, 2, 3] [0, 1, 2, 3] [0, ...

  2. 编写程序python、实现将矩阵顺时针旋转90°_Java实现矩阵顺时针旋转90度的示例...

    实现矩阵的转置较为容易,只需要将纵横下标互换即可.实现矩阵旋转稍微麻烦一点. 解题思路: 矩阵转换90度,则原矩阵的纵下标转变为新矩阵的横下标:原矩阵的横下标转变为新矩阵的纵下标,并且顺序相反. pu ...

  3. 矩阵顺时针旋转90度

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! ---- ...

  4. python顺时针打印矩阵_python实现顺时针打印矩阵

    面试题之顺时针打印矩阵,Python实现,供大家参考,具体内容如下 问题描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,输入如下矩阵: 则依次打印出数字1,2,3,4,8, ...

  5. python将矩阵顺时针旋转90度_在Python中将方形矩阵逆时针旋转90度的程序

    假设我们有一个正方形矩阵,我们必须将其逆时针旋转90度.147 258 369 那么输出将是789 456 1个23 为了解决这个问题,我们将遵循以下步骤-如果矩阵为空,则返回一个空白列表 n:=矩阵 ...

  6. python顺时针旋转_python——n*n矩阵顺时针旋转90度

    先设计思路,以4*4矩阵为例,不难发现其实如果把下列同色的行和列交换,其实就能达到目标 不难发现,实现有如下规律: i = 0 j = 1,2,3 i = 1 j = 2 ,3 i= 2 j = 3 ...

  7. python顺时针旋转_Python之二维数组N*N顺时针旋转90度

    需求:把一个二维数组顺时针旋转90度,现实数据的替换. 比如把4*4的二维数组顺时针旋转90度 原始数据是一个嵌套列表:[['A', 'B', 'C', 'D'], ['A', 'B', 'C', ' ...

  8. Python 对称矩阵顺时针旋转90度

    方式一:这种方法是从右下角至上开始读取,然后依次向左读取,但是时间复杂度过高,建议看方式二 # 把对称矩阵顺时针旋转90度 # 该法问从左下角往上读取,再重新构造矩阵,时间复杂度叫高 matrix = ...

  9. 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转

    有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转 ...

最新文章

  1. 浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)
  2. Myeclipse连接Mysql数据库时报错:Error while performing database login with the pro driver:unable...
  3. App Store 排名获取。
  4. Android官方开发文档Training系列课程中文版:通过NFC共享文件之从其它设备接收文件
  5. linux rz sz 安装_Windows与Linux文件传输之lrzsz工具
  6. Apache CarbonData 2.0 开发实用系列之一:与Spark SQL集成使用
  7. 想买楼下邻居的那套房,彼此熟悉,这种情况还用找中介付中介费吗?
  8. webSphere报错:Error 500: javax.servlet.ServletException: SRVE0207E: Uncaught initialization
  9. 人脸对齐(六)--ERT算法
  10. 移动端实现标题文字的截断
  11. 信息差,永远可以赚钱
  12. Failure obtaining db row lock: Lock wait timeout exceeded; try restarting transaction java定时任务
  13. {转载}circos绘图(2)
  14. c语言去除字符串中字母,C语言经典例题100例——C语言练习实例32解答(在字符串中删除指定字母或字符串)...
  15. openlayers 地图上加图标_Openlayers 定位,添加自定义图标,点击图标弹框
  16. 古代地图的那些趣事儿
  17. C编译报错: implicit declaration of function xxx is invalid in C99 [-Wimplicit-function-declaration]
  18. 1026: 字符类型判断 C语言
  19. Interval数据类型
  20. 解析Activity中的onCreate方法

热门文章

  1. 软件设计能力提升之设计匠艺
  2. linux 查看运行任务管理器,linux任务管理器快捷键有哪些
  3. 《VMware Virtual SAN权威指南》一2.3.6 巨型帧
  4. 【图像处理】像素坐标系、像平面坐标系、相机坐标系、世界坐标系、内参矩阵、外参矩阵
  5. 无法启动此程序因为计算机中丢失d3dx,因计算机中丢失d3dx9-41.dl而无法启动程序的解决办法...
  6. 小学计算机教室外墙文化建设,4款小学教室外墙布置图片 小学教室走廊班牌班级文化墙设计图片...
  7. 成都,今夜请将我遗忘 读后感
  8. 软件模块化定制将造成传统软件消失?
  9. 异步电机变压变频控制(Asynchronous VVVF)-恒压频比控制Simulink仿真
  10. 作为一号之主,今天我们敞开心扉聊一聊