【Leetcode】59. 螺旋矩阵II

news2024/11/28 16:36:32

给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]

面试频率较高

1. 先定义一个空矩阵
2. startx表示行起始 starty表示列起始
3. 左闭右开原则,从左到右,从上到下,从右到左,从下到上开始循环赋值,一共是四个循环
4. 注意偶数和奇数,奇数需要给中心值赋值

class Solution(object):
    def generateMatrix(self, n):
        """
        :type n: int
        :rtype: List[List[int]]
        """

        nums = [ [0]*n for _ in range(n)]

        startx, starty = 0,0 // startx表示行 starty表示列
        loop, mid = n // 2, n // 2

        count = 1

        for offset in range(1, loop + 1):
            for i in range(starty,n - offset):
                nums[startx][i] = count
                count += 1
            for i in range(startx,n - offset):
                nums[i][n - offset] = count
                count += 1
            for i in range(n - offset,starty,-1):
                nums[n - offset][i] = count
                count += 1
            for i in range(n - offset,startx,-1):
                nums[i][starty] = count
                count += 1  
            startx += 1
            starty += 1
        
        if  n % 2 != 0:
            nums[mid][mid] = count

        return nums

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信息安全-加密技术

一、概念 加密是利用数学方法将明文(plain text)转换为密文(cipher),从而达到保护数据的目的。 加密是一个使信息只对正确的接收者可读,其他用户看到的是乱码信息的过程。 加密技术作用 加密技术在网络上的作用就是防止私有化信息在网络上被拦截和窃取。通过加密可保…

性能测试:Jmeter-Beanshell请求加密实例

前言 进行性能测试时,有可能遇到一种场景:接口请求由于安全问题,需要进行加密发送。 这种场景下,使用Jmeter实现性能测试,则也需要使用同样的加密规则发送请求报文。 要实现此类性能测试有几种策略: 直…

纹理环绕方式

一般而言,纹理坐标范围(0,0)到(1,1),若设置超出该范围,则会按照如下环绕方式处理。 设置纹理参数的函数原型为: 坐标信息: float vertices[] { // positions // colors // texture coords 0.9f, 0.9f, 0.0f, 1.0f,…

线上后端接口响应过慢排查记录_MySQLthread cache命中率过低导致的接口响应慢

文章目录 问题现象初步排查调整临时解决措施问题二次定位原因分析为什么会出现异常 问题现象 9点多,运营同学反馈系统某模块业务响应很慢,登录系统查看,后端接口响应耗时很久,需要好几秒; 查看对应的服务器资源情况&a…

纸箱视觉定位抓取软硬件方案

【检测目的】 产品定位抓取 【客户要求】 精度为0.1mm 【拍摄与处理效图一】 【拍摄与处理效图二】 【拍摄与处理效图三】 【拍摄与处理效图四】 【拍摄与处理效图五】 【实验原理及说明】 【实验原理及说明】 【实验原理及说明】 【方案评估】 根据目前的图像和处理结果来看…

数据结构与算法——数据结构有哪些,常用数据结构详解

数据结构是学习数据存储方式的一门学科,那么,数据存储方式有哪几种呢?下面将对数据结构的学习内容做一个简要的总结。 数据结构大致包含以下几种存储结构: 线性表,还可细分为顺序表、链表、栈和队列;树结…

云计算的学习(二)

二、计算虚拟化 1.计算虚拟化的介绍 1.1虚拟化简介 a.什么是虚拟化 将物理设备逻辑化,转化成文件或者文件夹,这个文件或文件夹一定包含两个部分:一部分用于记录设备配置信息,另一部分记录用户数据。 虚拟机摆脱了服务器的禁锢…

Centos7安装go语言环境

Centos7安装go语言环境 文章目录 下载解压缩配置变量验证已安装 下载 从go语言官网下载对应的二进制存档包 wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz解压缩 解压缩到/usr/local,将自动在其中创建一个Go树 /usr/local/go tar -C /usr/local -xz…

HashMap学习总结

1. JDK 1.8 主要进行了哪些优化? 1)底层数据结构从“数组链表”改成“数组链表红黑树”,主要是优化了 hash 冲突较严重时,链表过长的查找性能:O(n) -> O(logn)。 2)计算 table 初始容量的方式发生了改…

GLM 130B和chatGLM2-6B模型结构

GLM-130B 一、预训练 采用双向注意力机制,对被遮挡的部分及逆行预测, 可以自由设置单词mask,句子smask,文章gmask,可以根据任务的不同设置mask,文本理解设置单词级别mask,文本生成色湖之句子级别的gmask,glm130B中设置…

Streamsets binlog采集时区问题

通过Streamsets采集mysql binglog增量数据时候,出现数据库中datetime时区问题。 要注意一点是,streamsets的前端展示的时间也是有时区的,后端返回的数据是时间戳,等于做了两次时区的转换 后端binglog时区转换->时间戳->前端…

ELK日志记录——Kibana组件——grok 正则捕获插件

grok 正则捕获插件 grok 使用文本片段切分的方式来切分日志事件 内置正则表达式调用 %{SYNTAX:SEMANTIC} ●SYNTAX代表匹配值的类型,例如,0.11可以NUMBER类型所匹配,10.222.22.25可以使用IP匹配。 ●SEMANTIC表示存储该值的一个变量声明&…

Linux——SIGCHLD信号——第17号信号

目录 什么是僵尸进程? 僵尸进程的目的? 如何避免僵尸进程? 总结: 提到SIGCHLD信号,就不得不先说一个有关僵尸状态的进程知识点了。 什么是僵尸进程? 首先内核会释放终止进程(调用了exit系统调用)所使用的所有存情区,关闭所有打开的文…

计代码行数cloc,一个代码统计行数很好用的工具

分为window、mac系统区分,基本是一样的,一个代码统计行数很好用的工具。 CLOC简介 Cloc是一款使用Perl语言开发的开源代码统计工具,支持多平台使用、多语言识别,能够计算指定目标文件或文件夹中的文件数(files&#x…

Linux——sigaction信号捕捉函数

目录 一.sigaction () ; struct sigaction结构体的成员: sigaction()和signal()函数的区别: 二.sigaction函数的使用 sigaction函数使用案例1: 对该进程发送指定的信号 案例2:对该进程发送多个同类型的信号时: …

vim中文帮助文档安装

vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难,在何况还有"星级译王"呢, 但是我猜和我一样连英语四级都愁的大有人,可偏偏就有一帮好心人人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......又痛失一个学习英文的好机会, 下…

J2EE集合框架Map

目录 一.Map特点 1.无序,键值对,键不能重复,值可以重复 2.键重复则覆盖,没有继承Collection接口 二.遍历方式 1.拿到key,再拿值2.拿到映射关系,键值都有 取出保存所有Entry的Set,再遍历此Set即可 三.HashMap与H…

SpringBoot实现返回值数据脱敏

介绍 SpringBoot实现返回数据脱敏 有时,敏感数据返回时,需要进行隐藏处理,但是如果一个字段一个字段的进行硬编码处理的话,不仅增加了工作量,而且后期需求变动的时候,更加是地狱般的工作量变更。 下面&am…

HLS入门简述

What‘s HLS? HLS(High-Level Synthesis)高层次综合。何谓高层次?意味着我们可以使用高层次的语言来对设计进行描述,如C,C,System C等;那何谓综合呢?HLS在其中起了重要的…

Denosing score matching (公式+代码)

加噪声的分数匹配 def anneal_dsm_score_estimation(scorenet, samples, labels, sigmas, anneal_power2.):# 取出每个样本对应噪声级别下的噪声分布的标准差,即公式中的sigma_i,# 这里的 labels 是用于标识每个样本的噪声级别的,就是 i&…