zoukankan      html  css  js  c++  java
  • 顺时针打印矩阵

    public class PrintMatrix {

    public static void main(String[] args) {
      int[][] matrix = {{0,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};
      ArrayList<Integer> list = printMatrix(matrix);
      for(Integer i : list){
        System.out.println(i);
      }
    }

    public static ArrayList<Integer> printMatrix(int[][] matrix) {
      ArrayList<Integer> list = new ArrayList<Integer>();
      int i = 0;
      int j = 0;
      int M = matrix.length;
      int N = matrix[0].length;
      int[][] temp = new int[M][N];
      while (!isFinsh(temp)){
        for(; j < matrix[0].length && temp[i][j] == 0; ++j){
        list.add(matrix[i][j]);
        temp[i][j] = 1;
        }
        --j;
        ++i;
        for(; i < matrix.length&& temp[i][j] == 0; ++i){
          list.add(matrix[i][j]);
          temp[i][j] = 1;
        }
        --i;
        --j;
        for(; j >= 0&& temp[i][j] == 0; --j){
          list.add(matrix[i][j]);
          temp[i][j] = 1;
        }
        ++j;
        --i;
        for(; i >=1&& temp[i][j] == 0; --i){
          list.add(matrix[i][j]);
          temp[i][j] = 1;
        }
        ++i;
        ++j;
      }
      return list;
    }
      public static boolean isFinsh(int temp[][]){
        int M = temp.length;
        int N = temp[0].length;
        for(int k=0;k<M;k++){
          for( int l=0;l<N;l++){
            if(temp[k][l] ==0) return false;
          }
        }
        return true;
      }
    }

  • 相关阅读:
    golang获取URL
    Golang读取HTML中Table数据到二维数组
    Golang的GUI开发包fyne基本教程
    C#搭建安川机器人上位机
    程序计数器
    SpringBoot定时任务详解
    mysql 5.7安装
    springboot 配置多数据源
    mysql 查询某一天数据
    java如何获取当前日期和时间
  • 原文地址:https://www.cnblogs.com/huaiyinxiaojiang/p/6605654.html
Copyright © 2011-2022 走看看