class Solution {    public int[][] generateMatrix(int n) {        int[][] matrix = new int[n][n];        int start = 0;        int startNum = 1;        while (2 * start < n) {            int endX = n - 1 - start;            int endY = n - 1 - start;            for (int i = start; i <= endX; i++) {                matrix[start][i] = startNum++;             }            if (start < endY) {                for (int i = start + 1; i <= endY; i++) {                    matrix[i][endX] = startNum++;                }            }            if (start < endX && start < endY) {                for (int i = endY - 1; i >= start; i--) {                    matrix[endY][i] = startNum++;                }            }            if (start < endX && start < endY - 1) {                for (int i = endX - 1; i >= start + 1; i--) {                    matrix[i][start] = startNum++;                }            }            ++start;        }        return matrix;    }}