Given a positive integer n
, generate an n x n
matrix
filled with elements from 1
to n2
in spiral order.
Example 1:
Input: n = 3 Output: [[1,2,3],[8,9,4],[7,6,5]]
Example 2:
Input: n = 1 Output: [[1]]
Constraints:
1 <= n <= 20
class Solution {
public int[][] generateMatrix(int n) {
int[][] arr = new int[n][n];
int count = 1 ;
int minRow = 0 ;
int maxRow = n-1 ;
int minCol = 0 ;
int maxCol= n-1 ;
while(count<=n*n){
// minRow fixed (minCol --> maxcol );
for(int c = minCol ; c<=maxCol ; c++ ){
arr[minRow][c] = count;
count++;
}
// maxCol fixed ( minRow+1 ---> maxRow)
for(int r=minRow+1 ; r<=maxRow ; r++){
arr[r][maxCol] = count;
count++;
}
//maxRow fixed (maxcol-1 ---> mincol)
for(int c = maxCol-1 ; c>=minCol ;c--){
arr[maxRow][c] = count;
count++;
}
//minCol fixed (maxRow-1 ---> minRow+1 )
for(int r=maxRow-1 ; r>=minRow+1;r--){
arr[r][minCol] = count;
count++;
}
minCol++;
maxCol--;
minRow++;
maxRow--;
}
return arr ;
}
}
Office:- 660, Sector 14A, Vasundhara, Ghaziabad, Uttar Pradesh - 201012, India