Description
Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
Example:
1 | Input: 3 |
Difficulty: Medium
Code:
1 | class Solution { |
题意
给定正整数n,生成一个正方形矩阵,用从1到n的平方以螺旋到方式进行填充。
Solution 1
注意上右下左四条边up、right、down、left。
1、在上边up上,从左向右即left到right开始填充,结束后up向下移,并判断若up大于down则退出
2、在右边right上,从上向下即up到down开始填充,结束后right向左移,并判断若right小于left则退出
3、在下边down上,从右向左即right到left开始填充,结束后down向上移,并判断若down小于up则退出
4、在左边left上,从下向上即down到up开始填充,结束后left向右移,并判断若left大于right则退出
继续循环,直至满足退出条件,此时所以元素都已经按照螺旋到方式填充完成。
1 | class Solution { |
时间复杂度: O(n2)。
空间复杂度: O(n2)。