顺时针打印矩阵 按圈打印 java

顺时针打印矩阵
  • 热度指数:1440时间限制:3秒空间限制:32768K
  • 本题知识点:  模拟  数组
  •  算法知识视频讲解

题目描述

对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。

给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。

测试样例:
[[1,2],[3,4]],2,2
返回:[1,2,4,3]
可以按圈打印,最大圈数的2倍不能超过 m和n的最小值

import java.util.*;
 
public class Printer {
     
    public int[] clockwisePrint(int[][] mat, int n, int m) {
        int[] ret = new int[n*m];
        int k=0;
        for(int s=0;s*2右
                ret[k++]=mat[s][i];
            if(s下
                for(int i=s+1;i<=endy;++i)
                    ret[k++]=mat[i][endx];
            }
            if(s左
                for(int i=endx-1;i>=s;--i)
                    ret[k++]=mat[endy][i];
            }
            if(s上
                for(int i=endy-1;i>=s+1;--i){
                    ret[k++]=mat[i][s];
                }
            }
        }
        return ret;
    }
}







你可能感兴趣的:(oj)