剑指offer——顺时针打印矩阵
2017-07-02 17:53
239 查看
import java.util.ArrayList; public class Solution { public static ArrayList<Integer> printMatrix(int [][] matrix) { if(matrix == null) return null; ArrayList<Integer> arrayList = new ArrayList<>(); int up_limit = 0; int down_limit = matrix.length-1; int left_limit = 0; int right_limit = matrix[0].length-1; //保证有数字会继续输出 while (up_limit <= down_limit && left_limit <= right_limit) { //从左到右打印 if(up_limit <= down_limit) { for(int i = left_limit; i <= right_limit; ++i) //System.out.print(matrix[up_limit][i] + " "); arrayList.add(matrix[up_limit][i]); //上边界加1 up_limit = up_limit +1; } //从上到下打印 if(right_limit >= left_limit) { for(int i = up_limit; i <= down_limit; ++i){ // System.out.print(matrix[i][right_limit] + " "); arrayList.add(matrix[i][right_limit]); } //右边界-1 right_limit = right_limit - 1; } //从右到左打印 if(down_limit >= up_limit) { for(int i = right_limit; i >= left_limit; --i) { //System.out.print(matrix[down_limit][i] + " "); arrayList.add(matrix[down_limit][i]); } //下边界-1 down_limit = down_limit - 1; } if(left_limit <= right_limit) { //从下到上打印 for(int i = down_limit; i >= up_limit; --i) { //System.out.print(matrix[i][left_limit] + " "); arrayList.add(matrix[i][left_limit]); } //左边界+1 left_limit = left_limit + 1; } } return arrayList; } }
相关文章推荐
- 剑指offer-20:顺时针打印矩阵
- 剑指offer之十八---顺时针打印矩阵
- 剑指Offer:顺时针打印矩阵
- 《苦练算法》-剑指Offer- 十九、顺时针打印矩阵 -python编写
- 剑指offer面试题20-顺时针打印矩阵
- [剑指Offer] 19.顺时针打印矩阵
- 剑指offer 19 顺时针打印矩阵
- 剑指Offer,从外向里以顺时针打印矩阵
- 剑指offer-面试题20 顺时针打印矩阵
- 剑指offer-顺时针打印矩阵-php
- 剑指offer-面试题20.顺时针打印矩阵
- 剑指offer 之 顺时针打印矩阵
- Java 剑指offer_面试题20_顺时针打印矩阵(思路在一步步分解之中)
- 【剑指offer】4.2画图让抽象问题形象化——面试题20:顺时针打印矩阵
- 剑指Offer:面试题20 顺时针打印矩阵
- 码农小汪-剑指Offer之17-顺时针打印矩阵
- [遇见时光]剑指offer-顺时针打印矩阵java
- 牛客网-剑指offer-19-顺时针打印矩阵
- 剑指offer-面试题20-顺时针打印矩阵
- 【剑指Offer学习】【面试题20 : 顺时针打印矩阵】