首页 > 其他分享 >代码随想录 -- 数组 -- 螺旋矩阵II

代码随想录 -- 数组 -- 螺旋矩阵II

时间:2024-08-22 12:52:16浏览次数:9  
标签:count startX -- res 随想录 列表 II range offset

59. 螺旋矩阵 II - 力扣(LeetCode)

每画一条边都要坚持一致的左闭右开

注意处理n为奇数时的矩阵中心点

class Solution(object):
    def generateMatrix(self, n):
        res = [[0]*n for a in range(n)]
        startX=0
        startY=0
        loop=mid=n/2
        count=1
        for offset in range(1,loop+1):
            for i in range(startY,n-offset):
                res[startX][i]=count
                count+=1
            for i in range(startX,n-offset):
                res[i][n-offset]=count
                count+=1
            for i in range(n-offset,startY,-1):
                res[n-offset][i]=count
                count+=1
            for i in range(n-offset,startX,-1):
                res[i][startY]=count
                count+=1
            startX+=1
            startY+=1
        if n%2!=0:
            res[mid][mid]=count
        return res

 知识点

range函数

for i in range(7,4,-1):
    print i

运行结果为:7 6 5

定义二维数组

res = [[0]*n for a in range(n)]  与  res = [[0]*n]*n  的区别:

res = [[0]*n for a in range(n)]

  • 这是一个列表推导式,它创建了一个新的内部列表 n 次。
  • 在这个表达式中,[0]*n 创建一个包含 n 个 0 的列表,然后 for a in range(n) 循环执行 n 次,每次都创建一个新的这样的列表。
  • 因此,结果是 n 个不同的列表,每个列表都有 n 个 0,它们都是独立的。

res = [[0]*n]*n

  • 这个表达式首先创建了一个包含 n 个 0 的列表 [0]*n
  • 然后,这个列表被复制了 n 次,通过 *n 实现的。
  • 结果是 n 个列表的引用,这些列表实际上是同一个列表的引用。这意味着如果你修改了其中一个子列表中的任何元素,所有子列表中的相应元素都会改变,因为它们都指向同一个列表。

标签:count,startX,--,res,随想录,列表,II,range,offset
From: https://blog.csdn.net/weixin_56989647/article/details/141317529

相关文章

  • 代码随想录 -- 数组 -- 区间和
    58.区间和(第九期模拟笔试)(kamacoder.com)暴力解法大概率超时,应采用前缀和解法p[i] 表示vec[0]到vec[i]的累加和求vec[m] 到vec[n] 的和只需要 p[n]-p[m] 即可知识点input函数Python3 中raw_input()和input()进行了整合,去除了raw_input(),仅保留了i......
  • AI发展历史
    【AGI】是推动人工智能发展的核心理念,一直以来,我们可能并未听说【AGI】的发展历程,或者是相关概念,好像是最近才突然“火”起来,为什么消失了多年的概念在当今又被提起?下面笔者会从AGI的原点,深入介绍一下AGI的现状,以及未来发展的猜想。1AGI概念&背景1.1AI(ArtificialIntelligence......
  • 位运算符-按位取反运算符补充详解
    位运算符在计算机中用于直接操作整数的二进制位的运算符。这些运算符通常用于低级编程和优化特定类型的计算任务。以下是几种常见的位运算符及其解释:按位与(&):对应位都是1时结果为1,否则为0。例如:0101&0111=0101按位或(|):只要对应位有一个是1,结果就为1。例如:0101|0111=......
  • 电脑三大操作系统
    电脑需要运行,那就必须要有一个操作系统,一般情况下,电脑所装的系统是windows系统,除此之外,电脑的操作系统有很多的,windows是使用最多的一种,是微软公司的产品。下面就介绍下三大电脑操作系统,供大家参考。1、Windows使用最多MicrosoftWindows是美国微软公司研发的一套操作系统......
  • arc137_b
    给定一个长度为\(n\)的由\(0,1\)组成的整数序列\(A=(A_1,A_2,\cdots,A_n)\)。你可以做以下的操作一次且仅一次:选择\(A\)的一个连续的子段,对该子段进行反转操作,也就是将\(0\)变成\(1\),将\(1\)变成\(0\)。注意,你可以选择一个空字段,这就相当于你什么都没有做。......
  • 我的新项目又来咯!
    大家好,我是鱼皮,今天分享个我的新项目公开课预告~今晚(8月22号)晚20点,我会继续在B站和抖音《程序员鱼皮》账号直播新项目,依然是从0到1全程直播开发!这次的项目周期计划1个月左右,争取带大家快速搞定,能够作为秋招时简历上的亮眼项目~ 新项目是什么?这次的新项目,就是......
  • 再谈《Visual Studio中编写x64汇编的具体方法》
    很久以前,写了一篇《VS2010中编写x64汇编的具体方法》当时也没有太深入研究,只是粗粗的实现了功能而已。后来看了微软官方文档,才发现有更简单更合理的设置方法。微软原文如下:MASMforx64(ml64.exe)|MicrosoftLearn将汇编程序语言文件添加到VisualStudioC++项目Visu......
  • YSP_refs_cn_2011_OffL_BasicRes
    rhTNFR-Fc中文文献-2011-适应症外及基础研究 探索适应症外 随机对照试验[1][1]王载宇.益赛普对急性百草枯中毒中疗效的影响评价.医药前沿,2011,01(12):61-62.浏览文摘 案例报道[2-4][2]陈玲玲,吴文雅,施辛,等.重组人Ⅱ型肿瘤坏死因子受体-抗体融合蛋白治疗难......
  • MySQL 亿级数据平滑迁移实战
    作者:来自vivo互联网服务器团队-LiGang本文介绍了一次MySQL数据迁移的流程,通过方案选型、业务改造、双写迁移最终实现了亿级数据的迁移。一、背景预约业务是vivo游戏中心的重要业务之一。由于历史原因,预约业务数据表与其他业务数据表存储在同一个数据库中。当其他业务......
  • 星尘智能发布AI机器人助理Astribot S1
    原文链接:https://mp.weixin.qq.com/s/P26zhHzmuqe0M2TDTLRlvg星尘智能很高兴正式发布AI机器人助理——AstribotS1我们精心打磨了S1背后的技术与产品细节,希望它为你而生,为你而智(NaturallyYours)。星尘智能S1产品视频请看:https://www.bilibili.com/video/BV1ovpyeTE84......