問題:
給定一個正整數 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過程中的一些個人體會總結和借鑒,如有不當、錯誤的地方,請各位大佬批評指正,定當努力改正,如有侵權請聯系作者刪帖。)