• 顺时针打印矩阵


    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;
      }
    }

  • 相关阅读:
    麦卡姆轮运动原理
    ESP32开发(2)esp32-cam采集图像
    ESP32开发(1)环境配置
    Cesium学习笔记2-3:视频投影
    Cesium中实时显示经纬度及视角高
    Cesium学习笔记2-5:内部使用阳历扩展
    Cesium学习笔记2-4:外部扩展
    Cesium学习笔记2-4:更多官方示例
    win10通过wifi分享上网
    更换源地址
  • 原文地址:https://www.cnblogs.com/huaiyinxiaojiang/p/6605654.html
Copyright © 2020-2023  润新知