19 顺时针打印矩阵

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

import java.util.ArrayList;
public class Solution {
      ArrayList<Integer> a=new ArrayList<Integer> ();
    public ArrayList<Integer> printMatrix(int [][] matrix) {
      
        int tr=0;
        int tc=0;
        int row=matrix.length-1;
        int col=matrix[0].length-1;
        while(tr<=row&&tc<=col){
            print(matrix,tr++,tc++,row--,col--); 
        }
       
        return a;
    }
        public void print(int [][] matrix, int tr,int tc,int row,int col){
            if(tr==row){                      //一横行
               
                   int cur_c1=tc; 
           //     if(cur_c1==col){                                   //如果只有一个数字就放进去
           //         a.add(matrix[tr][tc]);
            //    }                                          
              for(int i=tc;i<=col;i++){
                  a.add(matrix[tr][i]);
              }
               
               
            }else if(tc==col){
                 for(int j=tr;j<=row;j++){
                  a.add(matrix[j][tc]);
              }
                 
            }else{
                int cur_c=tc;
                int cur_r=tr;    //存储当前的行与列
                
                while(cur_c!=col){
                    a.add(matrix[tr][cur_c]);
                    cur_c++;
                }
                while(cur_r!=row){
                    a.add(matrix[cur_r][col]);
                    cur_r++;
                }
                 while(cur_c!=tc){
                    a.add(matrix[row][cur_c]);
                    cur_c--;
                }
                 while(cur_r!=tr){
                    a.add(matrix[cur_r][tc]);
                    cur_r--;
                }
               
            }
        }
        }
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2...
    丶沧月阅读 132评论 0 0
  • 顺时针打印矩阵 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: ...
    echoVic阅读 725评论 0 2
  • 题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5...
    quiterr阅读 177评论 0 0
  • 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3...
    yui_blacks阅读 254评论 0 1
  • 题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5...
    juexin阅读 156评论 0 0