public class PrintMatrix {
public static void main(String[] args) {
int[][] p = {/** m ↓*/{1, 15, 14, 13,12},
/** ↓*/{2, 16, 21, 20,11},
/** ↓*/{3, 17, 18, 19,10},
/** n ↓*/{4, 5, 6, 7,9}};
/** k → j*/
int direction = -1;
int m = 0, n = 3;
int k = 0, j = 4;
//向下后k+1
//向右后n-1
//向上后j-1
//向左后m+1
//m=n&&k=j 结束
while (true) {
direction = (direction + 1) % 4;
switch (direction) {
case 0://↓
for (int i = m; i <= n; i++) {
System.out.print(p[i][k] + " ");
}
k++;
break;
case 1://→
for (int i = k; i <= j; i++) {
System.out.print(p[n][i] + " ");
}
n--;
break;
case 2://↑
for (int i = n; i >= m; i--) {
System.out.print(p[i][j] + " ");
}
j--;
break;
case 3://←
for (int i = j; i >= k; i--) {
System.out.print(p[m][i] + " ");
}
m++;
break;
}
if (m == n && k == j) {
break;
}
}
}
}
逆时针打印矩阵
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 解题思路 下图是打印的顺序 首先去定义上、下、左、右四个边界比如:在图中,打印1,2,3.起始位置是左边界,结束位...
- 题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 ...