题目描述:

参考后的提交:

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. case ...esac判断 function方法 循环loop,while do done,until do done

    就类似于其他语言中的case语句 用法 要点 第一 开始结束  case  esac 正好相反 第二  每段程序段需要用  两个:号结束. 例: } in "hello") ech ...

  2. Application.mk语法解释(转)

    转自:http://blog.csdn.net/roland_sun/article/details/46318893 Application.mk是用来描述你的应用程序需要哪些模块,以及这些模块所要 ...

  3. div::before一个能插入元素的选择器

    div::before一个能插入元素的选择器

  4. Python-UiAutomator2实现Android自动化测试

    本帖转自搜狗测试公众号 [一.前言]        基于Python-UiAutomator2实现Android自动化测试,小编在Android应用的自动化性能测试中进行了实践.本篇将简单介绍pyth ...

  5. 73. PrintStream(打印流)

    PrintStream(打印流)   打印流可以打印任意类型的数据,而且打印前都会把数据转换成字符串再进行打印(就是把数据存入硬盘中) 编码与解码图例:下面我们来看看一个简单的字节输出流 public ...

  6. Java虚拟机(一)

    一.Java发展历程 Java之父,James Gosling博士 时间 事件 1991年4月 James Gosling博士领导的Green Project启动,java语言前身Oak启动 1995 ...

  7. Delphi获取指定文件的版本号

    获取指定文件的版本号 方式一: function GetFileVersion(FileName: string): string; type PVerInfo = ^TVS_FIXEDFILEINF ...

  8. PHP ftp_nb_fget() 函数

    定义和用法 ftp_nb_fget() 函数从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中.(无阻塞) 该函数返回下列值之一: FTP_FAILED(发送/获取失败) FTP_FIN ...

  9. 排序算法(一) 插入排序及Java实现

    代码实现: public void insertionSort(List<T> list, Comparator<T> comparator) { for (int i=1; ...

  10. (转)浅谈C中的malloc和free

    原帖及讨论:http://bbs.bccn.net/thread-82212-1-1.html 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数 ...