算法——螺旋矩阵II(leetcode59)
给你一个正整数 n
,生成一个包含 1
到 n^2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
对于螺旋矩阵来讲难点主要在于行或列放置元素时的边界条件,我们遵循一个循环不变量原则在放置行或列元素时遵循左闭右开来放置元素这样就可以使代码简洁逻辑分明。代码逻辑简述就是根据正整数n确定循环圈数n/2在循环体中分别放置从左至右、从上到下、从右到左、从下到上的元素这样算完成一个循环圈数接着根据循环圈数重复上述操作即可要注意的是如果n为偶数则可以通过上述循环体将矩阵所有位置都放满元素如果是奇数那么就会导致矩阵正中心位置未放置元素这个我们需要在循环体外部进行单独判断处理这样就完成了上述螺旋矩阵的形成。