问题:
给定一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1:
输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]
示例 2:
输入:n = 1
输出:[[1]]
提示:
1 <= n <= 20
解答思路:
以下是使用 Java 语言实现生成螺旋矩阵 II 的代码示例:
import java.util.Arrays;class Solution {public int[][] generateMatrix(int n) {int[][] matrix = new int[n][n];int num = 1;int start = 0;int end = n - 1;while (start <= end) {for (int i = start; i <= end; i++) {matrix[start][i] = num++;}for (int i = start + 1; i <= end; i++) {matrix[i][end] = num++;}for (int i = end - 1; i >= start; i--) {matrix[end][i] = num++;}for (int i = end - 1; i > start; i--) {matrix[i][start] = num++;}start++;end--;}return matrix;}public static void main(String[] args) {Solution solution = new Solution();int n = 3;int[][] matrix = solution.generateMatrix(n);for (int[] row : matrix) {System.out.println(Arrays.toString(row));}}}
上述代码中,'generateMatrix'方法接受一个整数'n'作为矩阵的大小,通过循环遍历生成螺旋矩阵,并将值逐个填充到矩阵中。在'main'方法中可以调用'generateMatrix'方法并打印生成的矩阵。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)