JAVA实现顺时针打印矩阵问题(《剑指offer》)
来源:互联网 发布:centos 禁止ping 编辑:程序博客网 时间:2024/05/19 12:14
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:
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.
import java.util.ArrayList;public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { if (matrix == null) return null; ArrayList<Integer> result = new ArrayList<Integer>(); int start = 0; while(matrix[0].length > start *2 && matrix.length > start *2){ printMatrixInCircle(matrix,result,start); start++; } return result; } public static void printMatrixInCircle(int [][]matix,ArrayList<Integer>result,int start){ int endX = matix[0].length - start -1; int endY = matix.length - start -1; //从左向右打印一行 for(int i = start;i <=endX;i++){ result.add(matix[start][i]); } //从上到下 for(int i = start+1; i <=endY;i++) result.add(matix[i][endX]); //从右到左 if(start < endX &&start < endY) for(int i = endX -1;i>= start;i--) result.add(matix[endY][i]); //从下到上 if(start < endX && start < endY-1) for(int i = endY - 1;i >=start+1;i--) result.add(matix[i][start]); }}
0 0
- JAVA实现顺时针打印矩阵问题(《剑指offer》)
- 剑指Offer:顺时针打印矩阵(JAVA)
- 剑指offer--面试题20:顺时针打印矩阵--Java实现
- 剑指Offer面试题20:顺时针打印矩阵 Java实现
- 剑指Offer--顺时针打印矩阵问题
- 剑指offer:顺时针打印矩阵(java)
- (《剑指Offer》笔记)顺时针打印矩阵
- 剑指offer(21):顺时针打印矩阵
- 剑指offer(16)-顺时针打印矩阵
- 【剑指offer】顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 《剑指offer》顺时针打印矩阵
- 剑指offer-顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- ftrace 跟踪函数调用
- getopt和getopt_long
- 黑马程序员-----Foundation框架学习之NSArray学习
- codeforces 466C Civilization 并查集+dfs
- 分治法求全排列
- JAVA实现顺时针打印矩阵问题(《剑指offer》)
- 微信-订阅号和服务号的区别
- 30到运维面试题
- 设计模式之java中缓存的基本实现
- keras环境搭建
- Hibernate4在开发当中的一些改变
- 更新Podfile时半天没反应解决方案
- Java Web SSH-Hibernate框架复习
- Android Animation无限循环动画