leetcode 中等难度 第59题 螺旋矩阵Ⅱ

    技术2022-08-04  79

    给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

    一次通过,从外向内遍历就可以了。

    class Solution { public int[][] generateMatrix(int n) { int [][] ans = new int [n][n]; int start1 = 0 ; int end1 = n ; int start2 = 0; int end2 = n ; int num = 1 ; while(start1 <= end1 && start2 <= end2){ for(int i = start1 ; i < end1 ; i ++){ ans[start1][i] = num ; num++ ; } start1 ++ ; for(int i = start1 ; i < end2;i++){ ans[i][end2-1] = num; num++; } end2--; for(int i = end2-1 ; i > start2 ; i --){ ans[end1-1][i] = num ; num ++ ; } end1 -- ; for(int i = end1 ; i >= start1 ; i --){ ans[i][start2] = num ; num ++ ; } start2++ ; } return ans ; } }

    分别标定四个边界,一点一点的写。就可以啦。

    Processed: 0.013, SQL: 9