思路:
创建一个 n x n 的二维矩阵,并将所有元素初始化为 0。
初始化四个变量:top、bottom、left 和 right,以表示矩阵的边界。
从矩阵的左上角开始,向右移动,依次填充元素(1, 2, 3,...)。
当达到右边界时,向下移动,依次填充元素。
当达到下边界时,向左移动,依次填充元素。
当达到左边界时,向上移动,依次填充元素。
重复步骤 3-6,直到矩阵中的所有元素都被填充。
公式:
让 matrix[i][j] 表示矩阵中第 i 行第 j 列的元素。让 num 是当前要填充到矩阵中的数字。
填充矩阵元素的公式是:
matrix[top][left] = num; num++;(向右移动)
matrix[top][left + 1] = num; num++;(向右移动)
3....
matrix[top][right] = num; num++;(向下移动)
matrix[top + 1][right] = num; num++;(向下移动)
6....
matrix[bottom][right] = num; num++;(向左移动)
matrix[bottom][right - 1] = num; num++;(向左移动)
9....
matrix[bottom][left] = num; num++;(向上移动)
matrix[bottom - 1][left] = num; num++;(向上移动)
12....
循环继续,直到矩阵中的所有元素都被填充。
伪代码: