一、问题描述
给定一个矩阵,顺时针输出它的元素
二、注意问题
- 明确好上下限
- 右、下、左、上四个方向的起始点、边界线确定好
- 什么时候退出确定好
三、Code
1 package algorithm; 2 3 /** 4 * Created by adrian.wu on 2019/2/18. 5 */ 6 public class PrintMatrixElement { 7 public void printMetrixElement(int[][] matrix) { 8 int r = matrix.length, c = matrix[0].length, i = 0, count = 0, n = r * c; 9 while (i < r && count < n) { 10 //first, row is i 11 for (int j = i; j < c - i; j++) 12 if (count < n) { 13 System.out.println(matrix[i][j]); 14 count++; 15 } 16 17 18 //second, column is c -1 - i 19 for (int j = 1 + i; j < r - i; j++) 20 if (count < n) { 21 System.out.println(matrix[j][c - 1 - i]); 22 count++; 23 } 24 25 26 //third row is r - 1 -i 27 for (int j = c - i - 2; j >= i; j--) 28 if (count < n) { 29 System.out.println(matrix[r - 1 - i][j]); 30 count++; 31 } 32 33 34 //forth column is i 35 for (int j = r - i - 2; j >= i + 1; j--) 36 if (count < n) { 37 System.out.println(matrix[j][i]); 38 count++; 39 } 40 41 i++; 42 } 43 } 44 }