【螺旋矩阵 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

能跑就行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/801991.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解读|http和https的区别,谁更好用

在日常我们浏览网页时,有些网站会看到www前面是http,有些是https,这两种有什么区别呢?为什么单单多了“s”,会有人说这个网页会更安全些? HTTP(超文本传输协议)和HTTPS(…

筑牢安全防线,促进企业稳定成长

注重技术创新与产业升级,还要高度重视安全管理与可持续发展,才能确保产业园区内企业能够在安全、稳定的环境中持续成长,并为社会和环境做出贡献。 强化安全管理 1、智能化安保系统: 园区采用智能化管理系统,实现对物…

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH) 1、配置分机 点击分机 -> 找到你需要设置的分机 ->呼叫路由设置为external,这里需要设置的分机是呼叫的并不是坐席的分机呼叫路由 2、配置拨号方案 点击拨号方案 -> 输入目的地绑定 …

(02)Unity使用在线AI大模型(调用Python)

目录 一、概要 二、改造Python代码 三、制作Unity场景 一、概要 查看本文需完成(01)Unity使用在线AI大模型(使用百度千帆服务)的阅读和实操,本文档接入指南的基础上使用Unity C#调用百度千帆大模型,需要…

部署指南

部署指南 https://support.huawei.com/enterprise/zh/doc/EDOC1100368575/e64f745b 总体原则 园区网络作为网络基础设施,为用户提供网络通信服务和访问资源权限,其复杂多样的访问关系以及多种多样的业务类型必然要求园区网的设计要有良好的 设计原则。…

Ubuntu22 Qt6.6 ROS 环境搭建

Ubuntu22.04; Qt6.6; Qt Creator 13.01; ROS2 1. 安装 Qt ROS 插件 1.下载地址: https://github.com/ros-industrial/ros_qtc_plugin/releases 选择对应 Qt Creator 版本的安装包。 2. Qt Creator中,“Help - 关于插件”–>“install Plugin…

Docker容器——初识Docker,安装以及了解操作命令

一、Docker是什么? 是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源,用来管理容器和镜像的工具是在Linux容器里驱动运行应用的开源工具是一种轻量级的“虚拟机” 基于linux内核运行Docker的容器技术可以在一台主机上轻松为任何应用…

Win10+Docker配置TensorRT环境

1.Docker下载和安装 Docker下载:Install Docker Desktop on Windows Docker安装: 勾选直接下一步就行,安装完成后需要电脑重启。 重启后,选择Accept—>Continue without signing in—>skip survey. 可以进入下面页面,并且左下角是绿色的,显示e…

可视化作品集(14)智慧旅游和智慧景区,洞悉一切。

智慧旅游和智慧景区的可视化大屏可以带来以下几个方面的好处: 1. 提升游客体验: 通过可视化大屏,游客可以方便地获取到景区地图、交通信息、景点介绍、活动安排等信息,帮助游客更好地规划行程,提升游览体验。 2. 提供…

信创学习笔记(四),信创之数据库DB思维导图

创作不易 只因热爱!! 热衷分享,一起成长! “你的鼓励就是我努力付出的动力” 一. 信创学习回顾 1.信创内容 信创内容思维导图 2.信创之CPU芯片架构 信创之CPU芯片架构思维导图 3.信创之操作系统OS 信创之操作系统OS思维导图 二. 信创之国产数据库DB思维导图 …

【PG】PostgreSQL高可用之repmgr事件通知

目录 描述 结合脚本 占位符 repmgr命令 生成的事件: repmgrd 生成的事件(流复制模式): 描述 每次repmgr或repmgrd执行重大事件时,都会将该事件的记录连同时间戳、失败或成功的标识以及进一步的详细信息&#xff08…

CentOS 7 网络配置

如想了解请查看 虚拟机安装CentOS7 第一步:查看虚拟机网络编辑器、查看NAT设置 (子网ID,网关IP) 第二步:配置VMnet8 IP与DNS 注意事项:子网掩码与默认网关与 第一步 保持一致 第三步:网络配置…

深度学习入门——神经网络的学习

前言 这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。 为了使神经网络能进行学习,将导入损失函数这一指标 为了找出尽可能小的损失函数的值,本章我们将介绍利用了函数斜率的梯度法 从数据中学习 本章将介绍神经网络的学习,…

筑梦未来,精准构建:Chief Architect Premier X10 for Mac,首席建筑师的专业之选

Chief Architect Premier X10 for Mac,是建筑设计领域的一款顶尖软件,专为追求卓越设计与精准构建的用户量身打造。它融合了先进的3D建模技术与直观的操作界面,让设计师能够轻松实现创意与现实的完美融合。 这款软件提供了丰富的设计工具与资…

大数据技术基础

一、大数据平台 1.大数据平台方案步骤: ①市场上有哪些大数据平台 ②硬件、系统、业务增长等方面 ③方案是否通过 通过后:按照一期目标投入 先虚拟环境部署联系,再实际部署 《大数据架构介绍》《Hadoop架构解析》《Hadoop集群规划》 《H…

第九课:服务器发布(静态nat配置)

一个要用到静态NAT的场景,当内网有一台服务器server1,假如一个用户在外网,从外网访问内网怎么访问呢,无法访问,这是因为外网没办法直接访问内网,这时候需要给服务器做一个静态NAT。 静态NAT指的是给服务器…

[k8s源码]4.informer

Informer 是 client-go 库中的一个核心组件,它提供了一种高效的方式来监视 Kubernetes 集群中资源的变化。Informer 通过 Watch 机制与 API Server 建立长连接,初次同步时会获取资源的完整列表,之后只接收增量更新,大大减少了网络流量。 使用informer可…

【概率论三】参数估计

文章目录 一. 点估计1. 矩估计法2. 极大似然法1. 似然函数2. 极大似然估计 3. 评价估计量的标准2.1. 无偏性2.2. 有效性2.3. 一致性 三. 区间估计1. 区间估计的概念2. 正态总体参数的区间估计 参数估计讲什么 由样本来确定未知参数参数估计分为点估计与区间估计 一. 点估计 所…

EE trade:强平和爆仓的区别

在金融交易市场中,杠杆交易的引入,让投资者可以用少量的资金撬动更大的头寸,获取更大的收益。然而,杠杆交易也带来了更大的风险,一旦市场波动,投资者可能会面临强平或爆仓的风险。了解强平和爆仓的区别&…

51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动大屏_硬件SPI4_参考代码(v1.3)

单片机实际不限,这里采用的STC最新、主推的型号,比如STC8H8K64U、STC8051U34K64进行实验测试,您可以换用不同型号。目前测试这两个系列,显示速度均相当不错,软件设计也是极为简单。各篇文章下方均提供源码供参考下载。…