7 顺时针打印矩阵

Posted ghjnwk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7 顺时针打印矩阵相关的知识,希望对你有一定的参考价值。

0 引言

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.

1 抽象问题具体化

技术分享图片

打印顺序为:

1)最外圈,一直到最里圈,一圈一圈地打印;

2)最外圈的打印顺序为:左上角到右上角,右上角到右下角,右下角到左下角,左下角到左上角      

2 具体问题抽象分析

 (1)外循环:圈子在往里边缩,需要直到圈子的四个边界值,分别是:

最外圈为第0圈:横坐标范围是(0,m-1),纵坐标范围是(0,n-1)

里边的圈子为:已知当前为第p圈,横坐标(p,n-1-p),纵坐标范围是(p,m-1-p)

(2)内循环:圈子从(p,p)点开始,一直打印到(m-1-p,n-1-p)

 

(3)考虑特殊情况:

1)m = 0,n = 0,返回空;

2)

3 demo

 

4 代码优化

以上是关于7 顺时针打印矩阵的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 29. 顺时针打印矩阵 的 详细题解

完整可运行代码剑指 Offer 29. 顺时针打印矩阵

完整可运行代码剑指 Offer 29. 顺时针打印矩阵

顺时针打印矩阵

6.5——面试题29. 顺时针打印矩阵

6.5——面试题29. 顺时针打印矩阵