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 代码优化

猜你喜欢

转载自www.cnblogs.com/ghjnwk/p/10017890.html