/
githubmirror
/
interviews
Обзор
Документация
Войти
/
githubmirror
/
interviews
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
leetcode/array/SpiralMatrixII.java
59 строк
1 KB
Kevin Naughton Jr
finish renaming files and directories
27 мар 2018, 19:52
27 мар 2018, 19:52
ec6dfb5
Код
Авторство
О чём код?
// Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. // For example, // Given n = 3, // You should return the following matrix: // [ // [ 1, 2, 3 ], // [ 8, 9, 4 ], // [ 7, 6, 5 ] // ] public class SpiralMatrix { public int[][] generateMatrix(int n) { int[][] spiral = new int[n][n]; if(n == 0) { return spiral; } int rowStart = 0; int colStart = 0; int rowEnd = n - 1; int colEnd = n -1; int number = 1; while(rowStart <= rowEnd && colStart <= colEnd) { for(int i = colStart; i <= colEnd; i++) { spiral[rowStart][i] = number++; } rowStart++; for(int i = rowStart; i <= rowEnd; i++) { spiral[i][colEnd] = number++; } colEnd--; for(int i = colEnd; i >= colStart; i--) { if(rowStart <= rowEnd) { spiral[rowEnd][i] = number++; } } rowEnd--; for(int i = rowEnd; i >= rowStart; i--) { if(colStart <= colEnd) { spiral[i][colStart] = number++; } } colStart++; } return spiral; } }