zoukankan      html  css  js  c++  java
  • 剑指Offer(Java版)第二十四题:顺时针打印矩阵

    /*
    顺时针打印矩阵
    */
    public class Class24 {

    public void printMatrix(int[][] matrix){
    if(matrix == null || matrix.length <= 0){
    return;
    }else{
    printMatrixCircle(matrix,0);
    }
    }
    //index代表一个控制符,来控制打印的范围
    public void printMatrixCircle(int[][] matrix,int index){
    int row = matrix.length;
    int col = matrix[0].length;
    int endX = col - index - 1;
    int endY = row - index - 1;
    if(endX < index || endY < index){
    return;
    }
    //仅一列
    if(endX == index){
    for(int i = index; i <= endY; i++){
    System.out.print(matrix[i][index] + " ");
    }
    return;
    }
    //仅一行
    if(endY == index){
    for(int i = index; i <= endX; i++){
    System.out.print(matrix[index][i] + " ");
    }
    return;
    }
    //开始打印边界
    //步骤一
    for(int i = index; i <= endX; i++){
    System.out.print(matrix[index][i] + " ");
    }
    //步骤二
    for(int i = index + 1; i <= endY; i++){
    System.out.print(matrix[i][endX] + " ");
    }
    //步骤三
    for(int i = endX - 1; i >= index; i--){
    System.out.print(matrix[endY][i] + " ");
    }
    //步骤四
    for(int i = endY - 1; i >= index + 1; i--){
    System.out.print(matrix[i][index] + " ");
    }
    printMatrixCircle(matrix,index + 1);
    }

    public void test(int[][] matrix){
    printMatrix(matrix);
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Class24 c = new Class24();
    int[][] a = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
    c.printMatrix(a);
    }

    }

  • 相关阅读:
    文本字符集转换
    添加HP消息队列
    fedora19/opensuse13.1 配置svn client
    前端html---介绍前端,标签,列表
    数据分析1
    项目流程
    git 使用
    mongo基础
    linux上面pycharm汉化
    pythonNet 09协程
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12507121.html
Copyright © 2011-2022 走看看