顺时针打印矩阵 - 牛客剑指offer
2018-08-14 00:52
141 查看
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.
解题思路:
画图就会发现只需要一个外层循环,四个内循环解决;稍微有一点麻烦的是边界处理,不过画图一下就好了;
[code]import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { if(matrix==null) return null; int row=matrix.length; int col=matrix[0].length; if(col==0||row==0) return null; int num=((col<row?col:row)-1)/2+1; ArrayList res=new ArrayList<Integer>(); for(int i=0;i<num;i++){ for(int j=i;j<col-i;j++) res.add(matrix[i][j]); for(int k=i+1;k<row-i;k++) res.add(matrix[k][col-i-1]); for(int j=col-i-2;j>=i&&i!=(row-i-1);j--) res.add(matrix[row-i-1][j]); for(int k=row-i-2;k>i&&i!=(col-i-1);k--) res.add(matrix[k][i]); } return res; } }
阅读更多
相关文章推荐
- 牛客-剑指offer-顺时针打印矩阵
- 剑指offer之顺时针打印矩阵
- 剑指offer第19题(顺时针打印矩阵)
- [遇见时光]剑指offer-顺时针打印矩阵java
- 剑指offer 面试题20—顺时针打印矩阵
- [剑指offer]顺时针打印矩阵
- 【剑指Offer】面试题20:顺时针打印矩阵
- 【剑指Offer面试编程题】题目1391:顺时针打印矩阵--九度OJ
- 剑指Offer之面试题20:顺时针打印矩阵
- 剑指Offer------顺时针打印矩阵
- 《苦练算法》-剑指Offer- 十九、顺时针打印矩阵 -python编写
- 剑指offer--顺时针打印矩阵
- 剑指Offer_19_顺时针打印矩阵
- 剑指offer面试题29:顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 【剑指Offer面试编程题】题目1391:顺时针打印矩阵--九度OJ
- 【剑指offer】顺时针打印矩阵
- 剑指offer_顺时针打印矩阵
- 【剑指offer】解决面试题的思路 —— 顺时针打印矩阵(C++)
- 剑指offer 顺时针打印矩阵