leetcood学习笔记-59-螺旋矩阵二
2024-10-07 20:56:07
题目描述:
参考后的提交:
class Solution:
def generateMatrix(self, n: int):
#l = [[0] * n] * n 此创建方法错误
l = [[] for i in range(n)]
for i in range(n):
for j in range(n):
l[i].append(0)##l=[[o for i in range(n)]for i in range[n]]
#print(l)
j,m = 0,1
while m<=n*n:
for i in range(j,n-j):
l[j][i] = m
m += 1
for i in range(j+1,n-j):
l[i][n-j-1] = m
m += 1
for i in range(n-j-2,j-1,-1):
l[n-j-1][i] = m
m += 1
for i in range(n-j-2,j,-1):
l[i][j] = m
m += 1
j += 1
return l
注意:
l = [[0]*3]*3用这种方法生成二维列表时 改变其中一值,其它列相对应值改变!也就是说matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。 创建二维数组的方法:matrix = [[0 for i in range(3)] for i in range(3)]
其他:
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
res = [[0 for __ in range(n)] for _ in range(n)]
up,down,left,right = 0,n,0,n #上下左右边界
index = 1
while index <= n**2:
for i in range(left,right): #向右
res[up][i] = index
index += 1
up += 1 for i in range(up,down): #向下
res[i][right-1] = index
index += 1
right -= 1 for i in range(right-1,left-1,-1): #向左
res[down-1][i] = index
index += 1
down -= 1 for i in range(down-1,up-1,-1): #向上
res[i][left] = index
index += 1
left += 1 return res
最新文章
- 截取QueryString 通过截取?和&; 小写
- 你可能不知道的7个CSS单位
- SQL Server占用内存的认识
- [poj 3261]Milk Patterns
- JavaScript验证
- java实现简单的素数判断
- Constructing Roads(SPFA+邻接表)
- HDFS Block Replica Placement实现原理
- 【Flash ANE iOS】关于Flash ANE在iOS上面遇到的一些问题
- Python之列表&;元组&;字典
- Weex系列一、构建Weex工程
- 一个编程菜鸟的进阶之路(C/C++)
- springboot运行时该注意的地方
- Centos7开机启动自己的脚本的方法
- redux 入门
- java 处理上传exl数据 并导入数据库
- 15.vue动画&; vuex
- [Day15]常用API(Object类、String类)
- 微信公众号的分享接口,分享提示config:fail,invalid signature的解决办法(2017年12月)
- postgresql 表继承