zoukankan      html  css  js  c++  java
  • 数组和矩阵的问题转圈打印数组

    package demo2;

    import java.util.Scanner;

    public class Main {

    private static Scanner input = new Scanner(System.in);
    public static void main(String[] args) {
    //1:首先初始化一个矩阵
    //2:打印这个矩阵中的值

    printMatrix(init(4,4));

    }

    public static int [][] init(int row,int col){
    int [][] matrix = new int[row][col];
    for (int i = 0;i<row;i++) {
    for (int j = 0;j<col;j++) {
    matrix [i][j] = input.nextInt();
    }
    }
    return matrix;
    }

    public static void printMatrix(int [][] matrix){
    int tr = 0;
    int tc = 0;
    int dr = matrix.length - 1;
    int dc = matrix[0].length - 1;
    while (tr <= dr && tc <= dc) {
    printEdge(matrix,tr++,tc++,dr--,dc--);
    }

    }

    private static void printEdge(int[][] matrix, int tr, int tc, int dr, int dc) {
    //1:首先判断这个矩阵是不是只有一行的情况
    if (tr == dr) {
    for (int i = tc;i <= dc;i++) {
    System.out.print(matrix[tr][i] + " ");
    }
    }
    //2:判断这个矩阵是不是只有一列的情况
    else if (tc == dc) {
    for (int i = tr;i <= dr;i++) {
    System.out.print(matrix[i][tc] + " ");
    }
    }else{//一般的情况
    int curc = tc;
    int curr = tr;
    while (curc != dc) {
    System.out.print(matrix[tr][curc]);
    curc++;
    }

    while (curr != dr) {
    System.out.print(matrix[curr][dc]);
    curr++;
    }

    while (curc != tr) {
    System.out.print(matrix[dr][curc]);
    curc--;
    }

    while (curr != tr) {
    System.out.print(matrix[curr][tc]);
    curr--;
    }

    }







    }

    }

  • 相关阅读:
    POJ3687拓扑排序+贪心
    POJ3687拓扑排序+贪心
    POJ3614奶牛晒阳光DINIC或者贪心
    POJ3614奶牛晒阳光DINIC或者贪心
    POJ3070矩阵快速幂简单题
    POJ3070矩阵快速幂简单题
    POJ3040给奶牛发工资
    POJ3040给奶牛发工资
    #Leetcode# 78. Subsets
    #Leetcode# 89. Gray Code
  • 原文地址:https://www.cnblogs.com/airycode/p/5762442.html
Copyright © 2011-2022 走看看