题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.
class Solution:
# matrix类型为二维列表,需要返回列表
def printMatrix(self, matrix):
row=len(matrix)
if row==0:
return None
#初始化相关参数
col=len(matrix[0])
reslist=[]
startRow=0
endRow=row-1
startCol=0
endCol=col-1
while startRow<=endRow and startCol<=endCol:
#如果就剩下一行
if startRow==endRow:
i=startCol
while i<=endCol:
reslist.append(matrix[startRow][i])
i+=1
return reslist
#如果就剩下一列
if startCol==endCol:
i=startCol
while i<=endRow:
reslist.append(matrix[i][startCol])
i+=1
return reslist
#首行
i=startCol
while i<=endCol:
reslist.append(matrix[startRow][i])
i+=1
#末列
i=startRow+1
while i<=endRow:
reslist.append(matrix[i][endCol])
i+=1
#末行
i=endCol-1
while i>=startCol:
reslist.append(matrix[endRow][i])
i-=1
#首列
i=endRow-1
while i>=startRow+1:
reslist.append(matrix[i][startCol])
i-=1
startRow+=1
startCol+=1
endRow-=1
endCol-=1
return reslist

剑指offer-顺时针打印矩阵19的更多相关文章

  1. 剑指offer - 顺时针打印矩阵 - JavaScript

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下 4 X 4 矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印 ...

  2. 剑指Offer 顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...

  3. 剑指OFFER——顺时针打印矩阵

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8 ...

  4. 剑指Offer顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  5. 剑指Offer_Java_顺时针打印矩阵(二维数组)

    顺(逆)时针打印矩阵 算法思想: 简单来说,就是不断地收缩矩阵的边界 定义四个变量代表范围,up(初始0).down(初始-行高).left(初始-0).right(初始-列宽), 向右走存入整行的值 ...

  6. 剑指Offer-19.顺时针打印矩阵(C++/Java)

    题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 ...

  7. 剑指offer--26.顺时针打印矩阵

    1,2,3,45,6,7,88,10,11,1213,14,15,16 每次输出第一行,然后删除第一行,逆时针旋转剩下的矩阵. ------------------------------------ ...

  8. python剑指offer 顺时针打印指针

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  9. 用js刷剑指offer(顺时针打印数组)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

随机推荐

  1. 搭建Hadoop2.6.0+Spark1.1.0集群环境

    前几篇文章主要介绍了单机模式的hadoop和spark的安装和配置,方便开发和调试.本文主要介绍,真正集群环境下hadoop和spark的安装和使用. 1. 环境准备 集群有三台机器: master: ...

  2. phpStudy环境安装SSL证书教程(apache)

    https://cloud.tencent.com/product/ssl 此链接是检测域名 证书的可以检测一下 下面是证书配置 小白呢亲测 作为PHP程序员,我们一定要学会使用phpStudy环境集 ...

  3. html+css3 实现各种loading效果

    效果见下图 代码: 建议直接去本人github上浏览代码 https://github.com/wuliqiangqiang/loading <!DOCTYPE html> <htm ...

  4. vue的声明式渲染

    声明式渲染 答:2018-8-23声明式渲染是vue对数据进行操作的模式,也叫做响应式渲染当dom节点上绑定了vue的对象的属性时,如果这个属性发生了改变,无需你进行其它的操作,页面上的数据会自动发生 ...

  5. Linux中JDK的安装步骤

    1.下载jdk安装包rpm格式安装 http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa8 ...

  6. js数组去重(多种写法)

    最基本的写法 使用indexOf() var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2] //比较常规的语法使用indexOf来判断是否已经存在 g ...

  7. flask第三方插件WTForms

    在django中有ModelForm, 虽然flask原生没有提供, 但是强大的第三方也提供了这样的功能 虽然不如django的强大, 但是基本的功能还是可以有的, 下面就来使用一哈. WTForms ...

  8. Hadoop mapreduce框架简介

    传统hadoop MapReduce架构(老架构)   从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路:   1.首先用户程序 (JobClient) 提交了一个 job,job ...

  9. Python学习手册之数据封装、类方法、静态方法和属性函数

    在上一篇文章中,我们介绍了 Python 的内部方法.操作符重载和对象生命周期,现在我们介绍 Python 的数据封装.类方法.静态方法和属性函数.查看上一篇文章请点击:https://www.cnb ...

  10. Django之图书管理系统

    出版社的增删改查 展示出版社列表: 1. 创建一个表结构:   2. 再配合那俩条命令即可创建一个press表 创建出版社函数,并在url中进行配置 创建HTML页面,展示出版社的表 for循环 {% ...