LeetCode:59. 螺旋矩阵 II(python)
LeetCode:59. 螺旋矩阵 II(python) 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例 : 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] LeetCode 链接 思路 : 设置顺时针方向 遍历矩阵,根据边界和是否访问过该节点来更新方向 附代码(Python): class Solution : def generateMatrix ( self , n ) : # 顺时针方向(右下左上) dx = [ 0 , 1 , 0 , - 1 ] dy = [ 1 , 0 , - 1 , 0 ] dn = 0 # 方向指针 res = [ [ 0 ] * n for _ in range ( n ) ] # 初始化 x = y = 0 # 位置 for i in range ( 1 , n * n + 1 ) : res [ x ] [ y ] = i # 下一步位置 temp_x = x + dx [ dn ] temp_y = y + dy [ dn ] # 判断下一步位置是否合理,若合理则更新位置,若不合理则改变方向并更新位置 if 0 <= temp_x < n and 0 <= temp_y < n and res [ temp_x ] [ temp