/**************************************************************************************** *题目:顺时针打印矩阵 * 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵 * 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 *时间:2015年8月31日09:02:36 *文件:MergeLink.java *作者:cutter_point ****************************************************************************************/ package bishi.Offer50.y2015.m08.d31; public class MatrixCircle { private int numbers[][]; public MatrixCircle() { } //构造函数 public MatrixCircle(int nums[][]) { numbers = nums; } /** * 打印一圈 * @param start */ private void printCircle(int start) { int rows = numbers.length; int columns = numbers.clone().length; int endColumn = columns - 1 - start; int endRow = rows - 1 - start; //从左到右 for(int i = start; i <= endColumn; ++i) { int number = numbers[start][i]; System.out.print(number + "\t"); }//for //从上到下 if(endRow > start) { for(int i = start + 1; i <= endRow; ++i) { int number = numbers[i][endColumn]; System.out.print(number + "\t"); }//for }//if //从右到左 if(start < endColumn && start < endRow) { for(int i = endColumn - 1; i >= start; --i) { int number = numbers[endRow][i]; System.out.print(number + "\t"); }//for }//if //从下到上 if(start < endRow - 1 && start < endColumn) { for(int i = endRow - 1; i > start; --i) { int number = numbers[i][start]; System.out.print(number + "\t"); }//for }//if System.out.println(); } /** * 输入我们矩阵 */ public void printMaxtrixClockwisely() { if(numbers == null) return; int start = 0; int rows = numbers.length; int columns = numbers.clone().length; //我们终止的条件是,start到了中间位置 while(start * 2 < rows && start * 2 < columns) { this.printCircle(start); ++start; }//while } }
我发现了junit的测试的时候,要求这个类的构造函数是一个public并且是无参数的类,所以我们这个构造函数里面有参数,所以我们得重新写个测试类
package bishi.Offer50.y2015.m08.d31; public class Test { @org.junit.Test public void Test() { int numbers[][] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; MatrixCircle mc = new MatrixCircle(numbers); mc.printMaxtrixClockwisely(); } }
OutPut:
1 2
3 4 8
12 16
15 14 13
9 5
6 7 11
10
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-23 18:23:12