当前位置: 首页 > news >正文

LeetCode:59. 螺旋矩阵 II

🍎道阻且长,行则将至。🍓

🌻算法,不如说它是一种思考方式🍀


算法专栏: 👉🏻123


一、🌱59. 螺旋矩阵 II

  • 题目描述:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix
  • 来源:力扣(LeetCode)
  • 难度:中等
  • 提示:
    1 <= n <= 20
  • 示例 1:
    在这里插入图片描述
    输入:n = 3
    输出:[[1,2,3],[8,9,4],[7,6,5]]

🌴解题

模拟方向

本题只需要考虑:右 下 左 上,四种走向是循环来的,因此定义一个变量 direction,分别赋值 0 右,1 下,2 左,3 上,每个走向结束就 +1 再对 4 取余。
右 下 左 上 四个走向其实只需要控制 x y 坐标的某一个进行加减,主要是判断何时到达边界:数组边界、数组有值。

code

class Solution {public int[][] generateMatrix(int n) {int[][] ans=new int[n][n];if(n==1) {ans[0][0] = 1;return ans;}int direction=0;//0右 1下 2左 3上int i=0,j=-1;//坐标int k = 1;boolean tag=true;while(tag){switch (direction){case 0:j++;for (; j < n; j++) {if(ans[i][j]!=0)break;ans[i][j]=k;k++;}j--;direction=(direction + 1) % 4;if(ans[i+1][j]!=0)tag=false;break;case 1:i++;for (; i < n; i++) {if(ans[i][j]!=0)break;ans[i][j]=k;k++;}i--;direction=(direction + 1) % 4;if(ans[i][j-1]!=0)tag=false;break;case 2:j--;for (; j >=0 ; j--) {if(ans[i][j]!=0) {break;}ans[i][j]=k;k++;}j++;direction=(direction + 1) % 4;if(ans[i-1][j]!=0)tag=false;break;case 3:i--;for (; i >=0; i--) {if(ans[i][j]!=0)break;ans[i][j]=k;k++;}i++;direction=(direction + 1) % 4;if(ans[i][j+1]!=0)tag=false;break;}}return ans;}
}

在这里插入图片描述


返回第一页。☝

🌵 杂诗
人生无根蒂,飘如陌上尘。
分散逐风转,此已非常身。
落地为兄弟,何必骨肉亲!
得欢当作乐,斗酒聚比邻。
盛年不重来,一日难再晨。
及时当勉励,岁月不待人。

陶渊明(352 或 365 年 — 427 年),字元亮,又名潜,私谥“靖节”,世称靖节先生,浔阳柴桑(今江西省九江市)人。东晋末至南朝宋初期伟大的诗人、辞赋家。


☕物有本末,事有终始,知所先后。🍭

🍎☝☝☝☝☝我的CSDN☝☝☝☝☝☝🍓

相关文章:

LeetCode:59. 螺旋矩阵 II

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;59. 螺旋矩阵 II 题目描述&#xff1a;给你一个正整数 n &#xff0c…...

信息安全复习六:公开密钥密码学

一、章节梗概 1.公开密钥密码模型的基本原理 2.两个算法&#xff1a;RSA&D-H算法 主要内容 1.对称密钥密码的密钥交换问题 2.公钥密码模型的提出 3.设计公钥密码的基本要求 4.数字签名 5.RSA算法 6.公钥密码的特征总结 二、对称密钥密码 对称加密算法中&#xff0c;数据…...

YOLOv8 更换主干网络之 ShuffleNetv2

《ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design》 目前,神经网络架构设计多以计算复杂度的间接度量——FLOPs为指导。然而,直接的度量,如速度,也取决于其他因素,如内存访问成本和平台特性。因此,这项工作建议评估目标平台上的直接度量,而…...

async/await最详细的讲解

一、async 和 await 在干什么 async 是“异步”的简写&#xff0c;而 await 的意思是等待。async 用于申明一个 function 是异步的&#xff0c;而 await 等待某个操作完成。 async/await 是一种编写异步代码的新方法。之前异步代码的方案是回调和 promise。 async/await 像 p…...

学习数据结构第6天(栈的基本概念)

栈的基本概念 栈的定义栈的基本操作栈的存储结构 栈的定义 栈(Stack)是一种基于先进后出(FILO)或者后进先出(LIFO)的数据结构&#xff0c;是一种只允许在一端进行插入和删除操作的特殊线性表。 栈按照先进后出的原则存储数据&#xff0c;先进入的数据被压入栈底&#xff0c;最…...

自动化添加时间戳版本号

自动化添加时间戳版本号 前言一、静态资源二、版本号的来源三. 版本信息的位置四. 添加时间戳版本号1. 手动添加2. 自动化生成 前言 软件开发和发布过程中&#xff0c;版本是个极其重要的因素。大至操作系统&#xff0c;小到功能组件&#xff0c;都会涉及到版本相关的问题。 …...

【C语言】指针进阶[上] (字符、数组指针、指针数组、数组传参和指针传参)

简单不先于复杂&#xff0c;而是在复杂之后。 目录 1. 字符指针 面试题 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名 VS 数组名 3.3 数组指针的使用 4. 数组参数、指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二…...

软件测试外包干了4年,感觉废了..

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

ai改写句子软件-ai改写

AI免费伪原创&#xff1a;助力网站内容升级 您是否曾经为网站优化而烦恼&#xff0c;无论是内容更新还是SEO优化&#xff0c;都需要大量的时间和精力。但是&#xff0c;您是否知道&#xff0c;现在有一款能够使用AI技术来帮助您完成这些任务&#xff0c;而且还是免费的呢&…...

zabbix监控linux主机

1.本实验使用centos7主机&#xff0c;IP地址为10.1.60.115&#xff0c;firewalld和selinux服务已关闭 2.下载zabbix yum源(与zabbix server用一样的版本) rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 3.安装zabbix客户…...

编程中泛型的使用规则和限制是什么?

泛型是一种程序设计风格&#xff0c;它允许程序员在编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型。泛型主要用于实现通用的数据结构&#xff0c;例如集合、映射、列表等&#xff0c;使得这些数据结构可以存储多种类型的元素。 在泛型使用之…...

【工具】使用VS Code调试Docker Container中的代码

目录 使用VS Code调试Docker Container中的Autoware.ai代码第一种方法 -- 在VS Code中进行DebugStep1Step2Step3Step4c_cpp_properties.jsonlaunch.jsonsettings.jsontask.json Step5Step6Step7参考链接 第二种方法 -- cmake重新编译cmake使用方法&#xff08;简介&#xff09;…...

ZVL3网络分析仪

ZVL3 Rohde&Schwarz ZVL3 3G矢量网络分析仪|罗德与施瓦茨 9KHz至3GHz 罗德与施瓦茨Rohde&Schwarz 性能特点&#xff1a; 频率范围 9kHz至3GHz/6 GHz(典型值为5kHz) 测量时间(201个测量点&#xff0c;以校准的双端口) <75ms 数据传输(201个测量点) 在100Mbit/sLAN…...

TCP协议

传输层&#xff08;协议&#xff09; TCP协议 三次握手协议保证连接建立 四次挥手&#xff0c;利用这个协议断开连接&#xff0c;而且保证连接通道里面数据已经处理完毕 客户端&#xff08;Socket&#xff09;: 1、创建客户端的Socket对象&#xff08;Socket&#xff09;与指…...

69. x 的平方根

给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1&#xff1…...

Webshell应急响应指南

Webshell应急响应指南 1.Webshell 排查2.入侵时间确定3.Web日志分析4.漏洞分析5.漏洞复现6.清除Webshell并修复漏洞7.Webshell 防御方法1.Webshell 排查 可利用 Webshell 扫描工具(如 D 盾,河马)对应用部署目录进行扫描,如网站D:\WWW\目录 或者将当前网站目录文件与此前备…...

Linux如何定时执行任务

目录 crontab 介绍 安装crontab 服务操作说明 操作案例 crontab 介绍 Linux crontab是采用定期执行程序的命令&#xff0c;当安装完成操作 系统后&#xff0c;默认便会启动此任务调度命令&#xff0c;crond命令每分钟都会定期检查是否要执行任务的工作&#xff0c;如果要执…...

使用nvm替换nvmw作为nodejs的版本切换(亲测)

之前的文章&#xff1a;同时使用vue2.0和vue3.0版本的采坑记录 安装的nvmw&#xff0c;今天想要用nvmw切换时&#xff0c;居然给我报错了&#xff1a; 然后我就走上了使用nvm替换nvmw之路。。 1.安装 nvm-windows下载 下载release版 中Assets中的包&#xff0c;window10&…...

分布式事务

数据库事务 Atomicity 原子性 某个操作&#xff0c;要么全部执行完毕&#xff0c;要么全部回滚 Consistency 一致性 数据库中的数据全都符合现实世界的约束&#xff0c;则这些数据就符合一致性。 比如性别约束男or女&#xff0c;人名币面值不能为负数&#xff1b;出生地址不能…...

zk111111111111111111

Zookeeper 1 zookeeper(作为 dubbo 的注册中心): 概述: zookeper 是 一个分布式的、开源的分布式应用程序的协调服务,管理分布式应 用 作用: 配置管理,分布式锁,集群管理 2 zookeeper 的安装 (dubbo 的资料中已经整理) 3 zookeeper 的数据模型 zookeeper 是一个树形的服…...

EFM8 I2C Slave外设深度解析:从SMBus思维转换到实战应用

1. 项目概述&#xff1a;从SMBus到I2C Slave的思维转换如果你之前主要接触的是SMBus&#xff08;系统管理总线&#xff09;设备&#xff0c;现在要上手Silicon Labs的EFM8LB1或EFM8BB3这类8位MCU的I2C Slave&#xff08;从机&#xff09;功能&#xff0c;可能会觉得有点“水土不…...

打造极致氛围感编码环境:从视觉、听觉到工作流的全栈实践指南

1. 项目概述&#xff1a;当“氛围感”遇上“编码”&#xff0c;一个宝藏仓库的诞生如果你和我一样&#xff0c;是个对开发环境、工具流和“仪式感”有执念的程序员&#xff0c;那你肯定不止一次地折腾过自己的IDE主题、终端配色、字体&#xff0c;甚至桌面的壁纸和音乐。我们内…...

ARM SCTLR2_EL2寄存器解析与虚拟化安全控制

1. ARM SCTLR2_EL2寄存器架构解析SCTLR2_EL2是ARMv8/v9架构中EL2&#xff08;Hypervisor&#xff09;级别的扩展系统控制寄存器&#xff0c;作为标准SCTLR_EL2的补充&#xff0c;它通过掩码位机制实现了对关键系统功能的细粒度控制。这个64位寄存器主要包含两类功能字段&#x…...

如何用4个步骤构建你的开源六轴机械臂:完整DIY指南

如何用4个步骤构建你的开源六轴机械臂&#xff1a;完整DIY指南 【免费下载链接】Faze4-Robotic-arm All files for 6 axis robot arm with cycloidal gearboxes . 项目地址: https://gitcode.com/gh_mirrors/fa/Faze4-Robotic-arm Faze4-Robotic-arm是一个开源六轴机械臂…...

接入Taotoken后感受到的API调用延迟降低与错误率改善

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 接入Taotoken后感受到的API调用延迟降低与错误率改善 1. 背景与切换契机 作为一名长期在项目中集成大模型能力的开发者&#xff0…...

AI应用成本监控实战:基于令牌预算的LLM API调用管理与优化

1. 项目概述与核心价值最近在折腾AI应用开发&#xff0c;特别是那些基于大语言模型API&#xff08;比如OpenAI、Anthropic、Claude等&#xff09;的项目时&#xff0c;有一个痛点越来越明显&#xff1a;成本控制。你写了个聊天机器人&#xff0c;或者搞了个自动摘要工具&#x…...

一文读懂 .git 目录:Git 仓库的心脏与底层原理

你是否也曾好奇&#xff0c;Git 是如何记住我们每一次提交、每一次分支切换的&#xff1f;答案就藏在项目根目录下那个不起眼的 .git 文件夹里。它是 Git 仓库的 “心脏”&#xff0c;所有版本控制的数据、历史记录、配置信息都存储在这里。今天&#xff0c;我们就来深度拆解 .…...

全志T113-S3 SPI屏幕驱动踩坑实录:内核5.4下适配ILI9341的完整流程与代码修改

全志T113-S3 SPI屏幕驱动深度解析&#xff1a;内核5.4适配ILI9341的实战指南 在嵌入式开发领域&#xff0c;显示设备的驱动适配一直是工程师面临的核心挑战之一。全志T113-S3作为一款性价比突出的处理器&#xff0c;广泛应用于各类嵌入式场景&#xff0c;而ILI9341驱动的SPI屏幕…...

ComfyUI-Inpaint-CropAndStitch终极指南:30倍加速AI图像修复的完整教程

ComfyUI-Inpaint-CropAndStitch终极指南&#xff1a;30倍加速AI图像修复的完整教程 【免费下载链接】ComfyUI-Inpaint-CropAndStitch ComfyUI nodes to crop before sampling and stitch back after sampling that speed up inpainting 项目地址: https://gitcode.com/gh_mir…...

四通道32孔生物源性检测仪 肉源性检测仪器

四通道32孔生物源性检测仪搭载四通道48孔高通量检测架构&#xff0c;本少、效率低的短板&#xff0c;大幅提升肉类质检筛查效率。多通道独立运行互不干扰&#xff0c;可一次性完成大批量肉类样本同步检测设备检测精度优异&#xff0c;可精准识别各类常见动物源性成分&#xff0…...