2d Array в спиральном порядке

Я пытаюсь заполнить массив в спиральном порядке. Пока что я могу напечатать массив в спиральном порядке, но есть ли способ изменить массив так, чтобы я мог заполнить его в спиральном порядке, а затем просто напечатать массив? Я бы хотел, чтобы он шел в порядке убывания, как обратный отсчет. Пожалуйста помоги!

public class Spiral {
  public static void main(int m, int n) { 

    // create m by n array of integers 1 through m*n
    int[][] values = new int[m][n];
    for (int i = 0; i < m; i++)
        for (int j = 0; j < n; j++)
            values[i][j] = 1 + (m*n)*i + j;

    // spiral
    for (int i = (m*n)-1, j = 0; i > 0; i--, j++) {
          for (int k = j; k < i; k++) System.out.println(values[j][k]);
          for (int k = j; k < i; k++) System.out.println(values[k][i]);
          for (int k = i; k > j; k--) System.out.println(values[i][k]);
          for (int k = i; k > j; k--) System.out.println(values[k][j]);
    }
  }
}

Ответы на вопрос(6)

Ваш ответ на вопрос