题目描述:

参考后的提交:

  1. class Solution:
  2. def generateMatrix(self, n: int):
  3. #l = [[0] * n] * n 此创建方法错误
  4. l = [[] for i in range(n)]
  5. for i in range(n):
  6. for j in range(n):
  7. l[i].append(0)##l=[[o for i in range(n)]for i in range[n]]
  8. #print(l)
  9. j,m = 0,1
  10. while m<=n*n:
  11. for i in range(j,n-j):
  12. l[j][i] = m
  13. m += 1
  14. for i in range(j+1,n-j):
  15. l[i][n-j-1] = m
  16. m += 1
  17. for i in range(n-j-2,j-1,-1):
  18. l[n-j-1][i] = m
  19. m += 1
  20. for i in range(n-j-2,j,-1):
  21. l[i][j] = m
  22. m += 1
  23. j += 1
  24. return l

注意:

  1. l = [[0]*3]*3用这种方法生成二维列表时 改变其中一值,其它列相对应值改变!也就是说matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix3list也会随之改变。
  2.  
  3. 创建二维数组的方法:matrix = [[0 for i in range(3)] for i in range(3)]

其他:

  1. class Solution(object):
  2. def generateMatrix(self, n):
  3. """
  4. :type n: int
  5. :rtype: List[List[int]]
  6. """
  7. res = [[0 for __ in range(n)] for _ in range(n)]
  8. up,down,left,right = 0,n,0,n #上下左右边界
  9. index = 1
  10. while index <= n**2:
  11. for i in range(left,right): #向右
  12. res[up][i] = index
  13. index += 1
  14. up += 1
  15.  
  16. for i in range(up,down): #向下
  17. res[i][right-1] = index
  18. index += 1
  19. right -= 1
  20.  
  21. for i in range(right-1,left-1,-1): #向左
  22. res[down-1][i] = index
  23. index += 1
  24. down -= 1
  25.  
  26. for i in range(down-1,up-1,-1): #向上
  27. res[i][left] = index
  28. index += 1
  29. left += 1
  30.  
  31. 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. k8s容器-节点部署篇

    一. k8s节点部署 1. 环境规划 系统环境概述 系统环境说明 操作系统 Ubuntu16.04 or CentOS7 选的是CentOS7        -        Kubernetes版本 ...

  2. springMVC+freemarker整合

    转自:http://angelbill3.iteye.com/blog/1980904 在springMVC的项目中,加入freemarker 1.首先导入springMVC-webmvc所需的JAR ...

  3. Django之template操作

    一.模板渲染的原理 (一)使用 模板渲染首先有一个模板对象Template,然后有一个上下文对象Context,通过render方法进行渲染,最后返回字符串,render方法的本质还是调用了HttpR ...

  4. JMeter 服务器监控插件环境配置

    1.工具准备: jmeter下载地址:(尽量下载老版本如apache-jmeter-2.11,其他的版本比较高,可能和jmeter-plugins不兼容) http://jmeter.apache.o ...

  5. Vue学习笔记【20】——Vue中的动画(使用动画钩子函数)

    定义及使用钩子函数 定义 transition 组件以及三个钩子函数:  <div id="app">    <input type="button&q ...

  6. 【转】SpringMVC整合websocket实现消息推送及触发

    1.创建websocket握手协议的后台 (1)HandShake的实现类 /** *Project Name: price *File Name:    HandShake.java *Packag ...

  7. 存储emoji表情,修改字符集为utf8mb4

    SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'; SET ch ...

  8. docker仓库管理(9)

    使用公共 Registry Docker Hub 是 Docker 公司维护的公共 Registry.用户可以将自己的镜像保存到 Docker Hub 免费的 repository 中.如果不希望别人 ...

  9. I. Five Day Couple--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)

    题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 链接:https://www.nowcoder.com/acm/contest/104/H来源:牛客网 题目描述 ...

  10. 配置Maven私服

    Nexus 是“开箱即用”的系统,不需要数据库,它使用文件系统加 Lucene 来组织数据,支持 WebDAV 与 LDAP 安全身份认证.Nexus 还提供了强大的仓库管理功能,构件搜索功能,它基于 ...