【螺旋矩阵 II】python刷题记录

本来想着根据上一篇文章中大佬的思路来顺时针转转来改代码,想了一天没搞出来

http://t.csdnimg.cn/7sM8g

于是看了代码随想录的视频

一入循环深似海 | LeetCode:59.螺旋矩阵II_哔哩哔哩_bilibili

总结一下:

模拟的思路,每一圈中,模拟每条边,发现只需要左闭右开,4个循环就能分别完成一圈的模拟,然后调整出发的位置,以及终点的位置就能实现完成

圈数:n/2(这个时候需要对奇数情况,剩下中间一个元素进行处理,所以我们做一个判断并处理即可。

核心难点:并不是对1~n^2进行切块,而是对矩阵的元素进行赋值

上代码:

class Solution(object):
    def generateMatrix(self, n):
        """
        :type n: int
        :rtype: List[List[int]]
        """
        start_x=0
        start_y=0
        #offset代表每一圈中终点需要前移的位置数
        offset=1
        #初始化为1,因为后面可能n=1不会进入循环
        matrix=[[1 for _ in range(n)] for _ in range(n)]
        #count代表给出的数
        count=1
        for t in range(n/2):
             i=start_x
             j=start_y
             #第1条边
             for j in range(start_y,n-offset):
                matrix[i][j]=count
                count+=1
             j+=1
            #第2条边
             for i in range(start_x,n-offset):
                matrix[i][j]=count
                count+=1
             i+=1
            #第3条边
             for j in range(n-offset,start_y,-1):
                matrix[i][j]=count
                count+=1
             j-=1
            #第4条边
             for i in range(n-offset,start_x,-1):
                matrix[i][j]=count
                count+=1
            #圈数变化
             offset+=1
             start_x+=1
             start_y+=1
             #n为奇数的判断
             if n%2==1:
                j+=1
                matrix[i][j]=count
        return matrix
        #python有点不一样就是for i in range(a,b)后,i不会等于b,而是等于b-1

能跑就行

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 16:36:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 16:36:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 16:36:01       58 阅读
  4. Python语言-面向对象

    2024-07-17 16:36:01       69 阅读

热门阅读

  1. Web开发-LinuxGit基础6-本地-.gitignore

    2024-07-17 16:36:01       18 阅读
  2. 运动控制:步进电机同步带传动距离计算

    2024-07-17 16:36:01       17 阅读
  3. Spring与设计模式总览

    2024-07-17 16:36:01       19 阅读
  4. Avalonia中的数据验证

    2024-07-17 16:36:01       21 阅读
  5. [ptrade交易实战] 第十五篇 融资融券交易类函数

    2024-07-17 16:36:01       23 阅读
  6. 堆

    2024-07-17 16:36:01      19 阅读
  7. Gmsh概述

    2024-07-17 16:36:01       18 阅读
  8. Linux环境下卸载Redis

    2024-07-17 16:36:01       20 阅读