题目详解
相关链接
思路
- 模拟顺时针旋转路线,每一圈有4个边,实际就是每圈包含4次遍历
看完代码随想录之后的想法
- 遵循循环不变量规则:对每条边的处理规则要统一。每条边的遍历都是左闭右开
- 需要转
Math.floor(n/2)
圈,如果n
是奇数,跑完圈还剩下中心点再赋值一下
实现过程中遇到的困难
- 模拟旋转时循环的边界条件太多,很难处理
代码
1 | function generateMatrix(n: number): number[][] { |
时间复杂度:O(n^2)
空间复杂度:O(n^2)
收获
- get了循环不变量规则,尤其是在模拟类题目很有用。