题目描述:

参考后的提交:

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

leetcood学习笔记-59-螺旋矩阵二的更多相关文章

  1. leetcood学习笔记-54-螺旋矩阵

    题目描述: 第一次提交: class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: j,x = 0 ...

  2. leetcood学习笔记-45-跳跃游戏二

    题目描述: 第一次提交;超时 class Solution: def jump(self, nums: List[int]) -> int: l = [] for i in range(len( ...

  3. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及 ...

  4. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  5. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  6. vue2.0学习笔记之路由(二)路由嵌套+动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. vue2.0学习笔记之路由(二)路由嵌套

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader) 代码工 ...

  9. Java实现 LeetCode 59 螺旋矩阵 II

    59. 螺旋矩阵 II 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ...

随机推荐

  1. day07 python列表 集合 深浅拷贝

    day07 python   一.知识点补充     1."".join() s = "".join(('1','2','3','4','5'))  #将字符串 ...

  2. Dubbox离线约束地址

    地址: http://code.alibabatech.com/schema/dubbo/dubbo.xsd

  3. 基于React Native的跨三端应用架构实践

    作者|陈子涵 编辑|覃云 “一次编写, 到处运行”(Write once, run anywhere ) 是很多前端团队孜孜以求的目标.实现这个目标,不但能以最快的速度,将应用推广到各个渠道,而且还能 ...

  4. TCP的状态及变迁

    十一种状态如下图: 全部11种状态1. 客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT .2. 服务器独有的: ...

  5. nodejs的桌面应用(electron)

    最近发现nodejs可以做桌面应用,主要是之前的同事在搞,我也要稍微研究下不能落后啊,基于nodejs的桌面应用,常用的就是nw.js和electron,nw出的比较早,资料比较多,bug也很多,它的 ...

  6. 【leetcode】957. Prison Cells After N Days

    题目如下: There are 8 prison cells in a row, and each cell is either occupied or vacant. Each day, wheth ...

  7. 深入理解MAGENTO – 第八章 – 深入MAGENTO的系统配置

    (以下是原文) Last time we talked about Magento’s System Configuration system. If you missed it, you’ll wa ...

  8. Sqlserver复杂查询

    --联表修改 update xyzrb set xyzrb.xy_card=tablsb.card from xyzrb left join tablsb on xyzrb.xybh=tablsb.x ...

  9. 提高ASP.NET首页性能的方法

    1.js压缩文件,css压缩文件,引用的越少越好. 2.用 HTTP Module 控制页面的生命周期. 3.自定义生成动态页面的静态内容 . 4.页面用GZIP压缩. 5.OutputCache 编 ...

  10. 关于iframe定位碰到的问题。

    这几天在做自动化测试的时候发现一个问题,用JQUERY定位时,总是报错,MES:JQUERY IS NOT DEFINED. 检查自己定位没有问题,后来想是不是语法出了问题. 切换成XPATH来定位, ...