剑指offer第二版面试题29 顺时针打印矩阵 Java
发布时间
阅读量:
阅读量
题目描述:
给定一个矩阵,要求按照由外向内、顺时针方向依次输出其中的每一个数值。例如,若输入如下所示的矩阵:
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。
分析:
在面对较为复杂的问题时,在思考过程中借助图形辅助是一种有效的方式。由于本题需要按从外层到内层的顺序逐层输出数据元素,在这种情况下可以将矩阵视为多个同心圆结构。通过采用循环机制来处理矩阵的每一圈数据,并依次完成每一轮的数据输出操作。

接下来探讨循环终止的判断依据。设该矩阵的行数为rows,列数为columns。在打印第一圈时,左上角元素的位置为(0,0),第二圈的左上角坐标则为(1,1),依此类推。可以观察到,左上角坐标的行号与列号始终一致,因此可将左上角设定为(start,start)的一圈作为分析对象。
以一个55的矩阵为例,最后一圈仅包含一个数字,其坐标为(2,2)。此时发现5大于22。对于6*6的矩阵而言,
全部评论 (0)
还没有任何评论哟~
