59. 螺旋矩阵 II


  1. class Solution {
  2. public int[][] generateMatrix(int n) {
  3. int[][] matrix = new int[n][n];
  4. int start = 0;
  5. int startNum = 1;
  6. while (2 * start < n) {
  7. int endX = n - 1 - start;
  8. int endY = n - 1 - start;
  9. for (int i = start; i <= endX; i++) {
  10. matrix[start][i] = startNum++;
  11. }
  12. if (start < endY) {
  13. for (int i = start + 1; i <= endY; i++) {
  14. matrix[i][endX] = startNum++;
  15. }
  16. }
  17. if (start < endX && start < endY) {
  18. for (int i = endY - 1; i >= start; i--) {
  19. matrix[endY][i] = startNum++;
  20. }
  21. }
  22. if (start < endX && start < endY - 1) {
  23. for (int i = endX - 1; i >= start + 1; i--) {
  24. matrix[i][start] = startNum++;
  25. }
  26. }
  27. ++start;
  28. }
  29. return matrix;
  30. }
  31. }