【python】Leetcode每日一题-螺旋矩阵2
2024-08-28 03:14:36
【python】Leetcode每日一题-螺旋矩阵2
【题目描述】
给你一个正整数 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
【分析】
思路:和螺旋矩阵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;
} }
官方题解:
昨天只挂了一个链接,今天总结一下。
模拟:
顾名思义,模拟矩阵生成过程。
按层模拟:
将矩阵分层,只需考虑每一层怎样处理即可。
链接:点这里
最新文章
- C#终于支持可选参数了!
- appium java 环境搭建
- Promise对象
- ";Java 反序列化";过程远程命令执行漏洞
- java读取properties文件的内容
- UVA 11059
- bzoj1295
- matlab的cell数组
- SQL Server2008R2安装失败问题之语言包问题
- 1、Sencha cmd学习笔记(一) 使你的sencha cmd跑起来
- BZOJ3224/LOJ104 普通平衡树 pb_ds库自带红黑树
- .net 平台 统计图表展示控件fusioncharts
- python报错之OSError
- java对文件的检索
- [ctsc2018] 混合果汁 【可持久化线段树】【二分答案】
- iiiLab提供的视频解析接口如何使用?转发个简单的使用教程
- solr学习
- CentOS 6.5下快速搭建ftp服务器[转]
- latex对齐问题
- tomcat jsp页面乱码解决
热门文章
- kali Linux树莓派的完整配置,以及python环境的配置
- org.springframework.web.util.IntrospectorCleanupListener作用
- 【odoo14】第八章、服务侧开发-进阶
- 分形、分形几何、数据可视化、Python绘图
- 关于asyncio知识一
- 12、django.urls.exceptions.NoReverseMatch:
- golang 性能优化分析:benchmark 结合 pprof
- Prometheus联邦
- [GDKOI2021] 普及组 Day3 总结 &;&; 题解
- python中的数据结构-链表