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

Leetcode——数组:螺旋矩阵59.螺旋矩阵

题目

 

思路

对于每层,从左上方开始以顺时针的顺序填入所有元素。假设当前层的左上角位于 (top,left),右下角位于 (bottom,right),按照如下顺序填入当前层的元素。

    从左到右填入上侧元素,依次为 (top,left) 到 (top,right)。

    从上到下填入右侧元素,依次为 (top+1,right) 到 (bottom,right)。

    如果 left<right 且 top<bottom,则从右到左填入下侧元素,依次为 (bottom,right−1) 到 (bottom,left+1),以及从下到上填入左侧元素,依次为 (bottom,left) 到 (top+1,left)。

填完当前层的元素之后,将 left 和 top 分别增加 1,将 right 和 bottom 分别减少 1,进入下一层继续填入元素,直到填完所有元素为止。

代码

class Solution {
public:vector<vector<int>> generateMatrix(int n) {int num = 1;vector<vector<int>> matrix(n, vector<int>(n));int left = 0, right = n - 1, top = 0, bottom = n - 1;while (left <= right && top <= bottom) {for (int column = left; column <= right; column++)      //列是从左边开始,向右移动{matrix[top][column] = num;      //给矩阵赋值num++;                          //矩阵值增加}for (int row = top + 1; row <= bottom; row++) {         //行从第一行开始,向下增加matrix[row][right] = num;       //继续增加,给矩阵赋值num++;}if (left < right && top < bottom) {for (int column = right - 1; column > left; column--) {matrix[bottom][column] = num;num++;}for (int row = bottom; row > top; row--) {matrix[row][left] = num;num++;}}left++;right--;top++;bottom--;}return matrix;}
};

相关文章:

Leetcode——数组:螺旋矩阵59.螺旋矩阵

题目 思路 对于每层&#xff0c;从左上方开始以顺时针的顺序填入所有元素。假设当前层的左上角位于 (top,left)&#xff0c;右下角位于 (bottom,right)&#xff0c;按照如下顺序填入当前层的元素。 从左到右填入上侧元素&#xff0c;依次为 (top,left) 到 (top,right)。 从上到…...

C++类与对象-继承和多态(超全整理)

前言 前面讲类与对象上中下时&#xff0c;所讲的都是在单个类中相关的语法&#xff08;初始化列表、this指针、静态成员、常函数和常对象......&#xff09;或者使两个不同的类产生联系的语法&#xff08;友元&#xff09;。而本文虽然也是类与对象的内容&#xff0c;但和之前的…...

3.3 Thymeleaf语法

文章目录 引言Thymeleaf标签显示标签链接地址标签条件判断标签元素遍历标签 Thymeleaf表达式变量表达式选择变量表达式消息表达式链接表达式 Thymeleaf内置对象上下文对象上下文变量上下文区域请求对象响应对象会话对象日期对象 实战演练创建控制器创建模板页面 结语 引言 Thy…...

使用Dlib库实现人脸检测和关键点定位

目录 前言 一、安装Dlib库 二、人脸检测 三、人脸关键点定位 前言 Dlib是一个现代化的 C 工具包&#xff0c;提供了一些机器学习算法和工具&#xff0c;特别是在面部识别和人脸关键点检测方面非常流行。它具有易于使用的 Python 接口&#xff0c;并被广泛应用于计算机视觉项…...

DNS隧道流量分析

DNS隧道 DNS协议又称域名系统是互联网的基础设施&#xff0c;只要上网就会用到&#xff0c;因而DNS协议是提供网络服务的重要协议&#xff0c;在黑客进入内网后会使用DNS、ICMP、HTTP等协议隧道隐藏通信流量。本文通过DNS隧道实验并对流量进行分析&#xff0c;识别DNS隧道流量…...

HCIP-HarmonyOS Application Developer 习题(十一)

&#xff08;填空&#xff09;1、某开发者在使用HarmonyOs的分布式力时&#xff0c;分布式_____能力是其他分布式能力的基础。 答案&#xff1a;软总线 分析&#xff1a;分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座&#xff0c;为设备之间的互联互…...

使用Ollama测试OpenAI的Swarm多智能体编排框架

Ollama https://ollama.com/ ollama run qwen2.5Install Requires Python 3.10 pip install githttps://github.com/openai/swarm.git代码V1 # 导入Swarm和Agent类 from swarm import Swarm, Agent from openai import OpenAI # 实例化Swarm客户端 openai_client OpenAI…...

C# 完美操作 Active Directory 详细总结,轻松玩转域管理

前言 嗨&#xff0c;大家好&#xff01; 在这个数据信息飞速发展的 21 世纪&#xff0c;数据安全成为了每个企业关注的焦点&#xff0c;保护企业数据安全日益成为企业工作中的重中之重。 域服务器&#xff0c;尤其是微软的 Active Directory&#xff08;AD&#xff09;&…...

PCL 点云配准 KD-ICP算法(精配准)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 加载点云函数 2.1.2 构建KD树函数 2.1.3 KD-ICP配准函数 2.1.4 点云可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法…...

uniapp打包安卓apk步骤

然后安装在手机上就可以啦...

Springboot 整合 Java DL4J 实现安防监控系统

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…...

【数据结构与算法】第1课—算法复杂度

文章目录 1. 数据结构2. 算法3. 算法效率4. 算法复杂度5. 算法时间复杂度5.1 大O的渐进表示法5.2 时间复杂度示例 6. 空间复杂度6.1 练习16.2 练习26.3 练习3 1. 数据结构 数据结构是计算机存储、组织数据的方式&#xff0c;指相互之间存在一种和多种特定关系的数据元素的集合&…...

利用高德API获取整个城市的公交路线并可视化(五)

如果说我比别人看得更远些,那是因为我站在了巨人的肩上。——牛顿 参考:使用高德API获取公交线路数据,无需代码_实时公交api-CSDN博客 记录于2024年10月,因数据获取受网站更新策略等影响可能会失效,故记录写作时间,同时拾人牙慧,优化了后半部分数据直接导出为csv和shp…...

DNS:互联网域名系统的核心

什么是 DNS&#xff1f; DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;是互联网的一项基础服务&#xff0c;它负责将人类容易记忆的域名&#xff08;如 www.example.com&#xff09;转换成计算机可以识别的 IP 地址&#xff08;如 192.0.2.1&#xff09…...

小猿口算炸鱼脚本

目录 写在前面&#xff1a; 一、关于小猿口算&#xff1a; 二、代码逻辑 1.数字识别 2.答题部分 三、代码分享&#xff1a; 补充&#xff1a;软件包下载 写在前面&#xff1a; 最近小猿口算已经被不少大学生攻占&#xff0c;小学生直呼有挂。原本是以为大学生都打着本…...

浅谈云原生--微服务、CICD、Serverless、服务网格

往期推荐 浅学React和JSX-CSDN博客 一文搞懂大数据流式计算引擎Flink【万字详解&#xff0c;史上最全】-CSDN博客 一文入门大数据准流式计算引擎Spark【万字详解&#xff0c;全网最新】_大数据 spark-CSDN博客 目录 1. 云原生概念和特点 2. 常见云模式 3. 云对外提供服务的…...

android app执行shell命令视频课程补充android 10/11适配-千里马android

(https://blog.csdn.net/learnframework/article/details/120103471) https://blog.csdn.net/learnframework/article/details/120103471 hi&#xff0c;有学员在学习跨进程通信专题课程时候&#xff0c;在实战app执行一个shell命令的项目时候&#xff0c;对课程本身的android …...

C++笔记-UTF8和UTF8-dom的区别

在文件格式上&#xff0c;UTF-8 和 UTF-8-BOM 是两种不同的编码方式&#xff0c;其中 UTF-8-BOM 包含字节顺序标记&#xff08;BOM&#xff09;&#xff0c;而 UTF-8 则不包含。 UTF-8&#xff1a; UTF-8 是一种以字节为单位的可变长度字符编码&#xff0c;常用于以字节为单位…...

“探索Adobe Photoshop 2024:订阅方案、成本效益分析及在线替代品“

设计师们对Adobe Photoshop这款业界领先的图像编辑软件肯定不会陌生。如果你正考虑加入Photoshop的用户行列&#xff0c;可能会对其价格感到好奇。Photoshop的价值在于其强大的功能&#xff0c;而它的价格也反映了这一点。下面&#xff0c;我们就来详细了解一下Adobe Photoshop…...

网页复制粘贴助手,Chrome网页复制插件(谷歌浏览器复制插件)

一款解决网页限制复制问题的插件&#xff0c;当你遇到限制复制粘贴和右键的网页是不是很头痛&#xff1f;安装这个插件后&#xff0c;点下插件按钮就能解决了 碰到这种情况 也是非常头疼 chrome拓展-chrome插件-强制复制 当我们浏览网页的时候&#xff0c;看到感兴趣的内容就…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...

【Ftrace 专栏】Ftrace 参考博文

ftrace、perf、bcc、bpftrace、ply、simple_perf的使用Ftrace 基本用法Linux 利用 ftrace 分析内核调用如何利用ftrace精确跟踪特定进程调度信息使用 ftrace 进行追踪延迟Linux-培训笔记-ftracehttps://www.kernel.org/doc/html/v4.18/trace/events.htmlhttps://blog.csdn.net/…...