leetcode_59. 螺旋矩阵 II

目录

一、题目内容

二、解题思路

三、代码


一、题目内容

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

示例 1:

输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]

示例 2:

输入:n = 1
输出:[[1]]

提示:

1 <= n <= 20

二、解题思路

leetcode_54. 螺旋矩阵类似,只需要按照顺序逐次赋值即可。

三、代码


  
  1. class Solution:
  2. def generateMatrix(self, n: int):
  3. up, down, left, right = 0, n - 1, 0, n - 1 # 上下左右
  4. martix = [[0 for _ in range(n)] for _ in range(n)]
  5. num = 1
  6. while True:
  7. # →
  8. for i in range(left, right + 1):
  9. martix[up][i] = num
  10. num += 1
  11. up += 1
  12. if up > down:
  13. break
  14. # ↓
  15. for i in range(up, down + 1):
  16. martix[i][right] = num
  17. num += 1
  18. right -= 1
  19. if right < left:
  20. break
  21. # ←
  22. for i in range(right, left - 1, -1):
  23. martix[down][i] = num
  24. num += 1
  25. down -= 1
  26. if down < up:
  27. break
  28. # ↑
  29. for i in range(down, up - 1, -1):
  30. martix[i][left] = num
  31. num += 1
  32. left += 1
  33. if left > right:
  34. break
  35. return martix
  36. if __name__ == '__main__':
  37. # n = 3
  38. n = 1
  39. s = Solution()
  40. ans = s.generateMatrix(n)
  41. print(ans)

文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。

原文链接:nickhuang1996.blog.csdn.net/article/details/114867993

(完)