剑指offer--顺时针打印矩阵

原创 2017年04月25日 16:20:34

题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.


AC代码:

import java.util.ArrayList;

public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
       ArrayList<Integer> arr = new ArrayList<>();
       int row1 = 0;
       int row2 = matrix.length;
       int col1 = 0;
       int col2 = matrix[0].length;

       while(true){
           //从左到右打印
           for(int i = col1 ; i < col2 ; i++){
               arr.add(matrix[row1][i]);
           }
           row1++;
           if (row1 >= row2){
               break;
           }

           //从上到下打印
           for(int i = row1 ; i < row2 ; i++){
               arr.add(matrix[i][col2-1]);
           }
           col2--;
           if ( col2 <= col1){
               break;
           }

           //从右到左打印
           for(int i = col2-1 ; i >= col1 ; i--){
               arr.add(matrix[row2-1][i]);
           }
           row2--;
           if ( row1 >= row2){
               break;
           }

           //从下到上打印
           for(int i = row2-1 ; i >= row1 ; i--){
               arr.add(matrix[i][col1]);
           }
           col1++;
           if ( col1 >= col2){
               break;
           }
       }

       return arr;
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。若需转载,请注明http://blog.csdn.net/qq_30091945 举报

相关文章推荐

剑指offer--顺时针打印矩阵

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8...

剑指offer:顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

《剑指offer》顺时针打印矩阵

一、题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2...

剑指offer-顺时针打印矩阵

题目描述   输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, 例如, 如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 则依次打印出数字...

《剑指offer》——顺时针打印矩阵

T: 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, 例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

剑指offer:顺时针打印矩阵

题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2...

剑指offer-顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。           例如输入以下矩阵:        &#...

【剑指offer】顺时针打印矩阵

剑指offer上的第20题,九度OJ上测试通过。 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 1...

【剑指offer】顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:如果输入如下矩阵   1 2 3 4   5 6 7 8   9 10 11 12 13 14 15 16  则依次...

剑指offer——顺时针打印矩阵

1. 问题描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)