12月27日每日一题
给你一个正整数 n ,生成一个包含 1 到 n的平方 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形二维整型数组 matrix ,并将其打印出来.
例:
输入n = 3
那么我们应该生成的二维数组是:
提示:
1<= n <= 20;
public int[][] generateMatrix(int n) {int a = 1;int arr[][] = new int[n][n];if (n == 1) {arr[0][0] = 1;return arr;}for (int floors = 0; floors < n / 2; floors++) {for (int i = floors; i < n - floors - 1; i++, a++) {arr[floors][i] = a;}for (int i = floors; i < n - floors - 1; i++, a++) {arr[i][n - floors - 1] = a;}for (int i = n - floors - 1; i > floors; i--, a++) {arr[n - floors - 1][i] = a;}for (int i = n - floors - 1; i > floors; i--, a++) {arr[i][floors] = a;}}if ((n & 1) == 1) {arr[n / 2 + 1][n / 2 + 1] = n * n;}return arr;}
更多推荐
12月27日每日一题
发布评论