【python】Leetcode每日一题-螺旋矩阵2

【题目描述】

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

示例1:

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

示例2:

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

提示:

1 <= n <= 20

【分析】

  • 思路:和螺旋矩阵1类似

    首先赋值矩阵周围一圈,再赋值第二>>>圈,for循环形式递归。

  • AC代码:

    class Solution(object):
    def generateMatrix(self, n):
    """
    :type n: int
    :rtype: List[List[int]]
    """
    matrix = [[0 for i in range(n)] for i in range(n)]
    index = 1
    for i in range((n+1)//2):
    m = n - i*2
    for j in range(m):
    matrix[i][j+i] = index
    index+=1
    for j in range(m-1):
    matrix[i+1+j][n-i-1] = index
    index += 1
    for j in range(m-1):
    matrix[n-i-1][n-i-2-j] = index
    index += 1
    for j in range(m-2):
    matrix[n-i-j-2][i] = index
    index += 1
    return matrix
  • 讨论:

    • java版的1ms代码:

      主体思想同自己的AC代码,可见python效率的确低于java

      class Solution {
      public int[][] generateMatrix(int n) {
      int[][] arr = new int[n][n];
      int c = 1, j = 0;
      while (c <= n * n) { for (int i = j; i < n - j; i++)
      arr[j][i] = c++;
      for (int i = j + 1; i < n - j; i++)
      arr[i][n - j - 1] = c++;
      for (int i = n - j - 2; i >= j; i--)
      arr[n - j - 1][i] = c++;
      for (int i = n -j - 2; i > j; i--)
      arr[i][j] = c++; j++;
      } return arr;
      } }
    • 官方题解:

      昨天只挂了一个链接,今天总结一下。

      • 模拟:

        顾名思义,模拟矩阵生成过程。

      • 按层模拟:

        将矩阵分层,只需考虑每一层怎样处理即可。

      • 链接:点这里

最新文章

  1. C#终于支持可选参数了!
  2. appium java 环境搭建
  3. Promise对象
  4. &quot;Java 反序列化&quot;过程远程命令执行漏洞
  5. java读取properties文件的内容
  6. UVA 11059
  7. bzoj1295
  8. matlab的cell数组
  9. SQL Server2008R2安装失败问题之语言包问题
  10. 1、Sencha cmd学习笔记(一) 使你的sencha cmd跑起来
  11. BZOJ3224/LOJ104 普通平衡树 pb_ds库自带红黑树
  12. .net 平台 统计图表展示控件fusioncharts
  13. python报错之OSError
  14. java对文件的检索
  15. [ctsc2018] 混合果汁 【可持久化线段树】【二分答案】
  16. iiiLab提供的视频解析接口如何使用?转发个简单的使用教程
  17. solr学习
  18. CentOS 6.5下快速搭建ftp服务器[转]
  19. latex对齐问题
  20. tomcat jsp页面乱码解决

热门文章

  1. kali Linux树莓派的完整配置,以及python环境的配置
  2. org.springframework.web.util.IntrospectorCleanupListener作用
  3. 【odoo14】第八章、服务侧开发-进阶
  4. 分形、分形几何、数据可视化、Python绘图
  5. 关于asyncio知识一
  6. 12、django.urls.exceptions.NoReverseMatch:
  7. golang 性能优化分析:benchmark 结合 pprof
  8. Prometheus联邦
  9. [GDKOI2021] 普及组 Day3 总结 &amp;&amp; 题解
  10. python中的数据结构-链表