【python】Leetcode每日一题-螺旋矩阵2
2021-06-07 21:05
标签:elf strong turn ref matrix lol problem i+1 正方形 给你一个正整数 示例1: 示例2: 提示: 思路:和螺旋矩阵1类似 首先赋值矩阵周围一圈,再赋值第二>>>圈,for循环形式递归。 AC代码: 讨论: java版的 主体思想同自己的 官方题解: 昨天只挂了一个链接,今天总结一下。 模拟: 顾名思义,模拟矩阵生成过程。 按层模拟: 将矩阵分层,只需考虑每一层怎样处理即可。 链接:点这里 【python】Leetcode每日一题-螺旋矩阵2 标签:elf strong turn ref matrix lol problem i+1 正方形 原文地址:https://www.cnblogs.com/krnl-dpr/p/14546289.html【python】Leetcode每日一题-螺旋矩阵2
【题目描述】
n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]
输入:n = 1
输出:[[1]]
1
【分析】
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
1ms
代码:AC
代码,可见python
效率的确低于java
。class Solution {
public int[][] generateMatrix(int n) {
int[][] arr = new int[n][n];
int c = 1, j = 0;
while (c = j; i--)
arr[n - j - 1][i] = c++;
for (int i = n -j - 2; i > j; i--)
arr[i][j] = c++;
j++;
}
return arr;
}
}
上一篇:python登陆界面尝试
下一篇:python镜像配置国内网站