剑指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 之 顺时针打印矩阵

# -*- coding:utf-8 -*- ''' 面试20 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, 例如,如果输入如下矩阵: [[ 1, 2, 3, 4], [ ...

剑指Offer20:顺时针打印矩阵

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

【剑指offer-Java版】20顺时针打印矩阵

顺时针打印矩阵:重在理解,毕竟作者分析的那个方法看起来还是蛮复杂的-所以自己写了个接地气的方法重在逻辑的一个题,一次性完全写对还是比较困难的 public class _Q20 { ...

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

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

【面试题】剑指offer20--顺时针打印一个矩阵的数字

【面试题】剑指offer20--顺时针打印一个矩阵的数字

《剑指offer》学习之--顺时针打印矩阵

#include "stdafx.h" void PrintMatrixInCircle(int** numbers, int columns, int rows, int start); void...

剑指offer-面试题20.顺时针打印矩阵

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

剑指offer 面试题20 顺时针打印矩阵

剑指offer 面试题20 顺时针打印矩阵 输入一个矩阵,按照从外向里以顺时针依次打印出每一个数字。 例如,如果输入矩阵如下: 1 2 3 4 ...

剑指offer(20)顺时针打印矩阵

题不难,画图推导一下就ok ,这样的
  • jw903
  • jw903
  • 2014年08月06日 17:48
  • 475

剑指Offer_面试题20_顺时针打印矩阵

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:  1   2   3   4  5   6   7   8 9  10  11 12  13 14 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指offer--顺时针打印矩阵
举报原因:
原因补充:

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