在做题中学习(89):螺旋矩阵

解法:模拟
思路:创建ret数组,用变量标记原矩阵的行数和列数,遍历一个元素就push_back进ret数组,每次遍历完一行或一列,相应行/列数--,进行顺时针螺旋遍历到为0即可。
细节:要有边界条件的判断,因为要保证 rows>0 && cols > 0,while循环中的某次for结束将对应rows-- 到0 / cols--到0,后面再继续就会出问题,解决方法就是再加一层if判断即可。
附上完整代码:
class Solution
{
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> ret;int rows = matrix.size(),cols = matrix[0].size();int a = 0,b = -1;while(rows > 0 && cols > 0) {for(int i = 0;i<cols;i++)ret.push_back(matrix[a][++b]);rows--;for(int i = 0;i<rows;i++)ret.push_back(matrix[++a][b]);cols--;if(rows > 0){for(int i = 0;i<cols;i++)ret.push_back(matrix[a][--b]);rows--; }if(cols > 0){for(int i = 0;i<rows;i++)ret.push_back(matrix[--a][b]);cols--;}}return ret;}
};
相关文章:
在做题中学习(89):螺旋矩阵
解法:模拟 思路:创建ret数组,用变量标记原矩阵的行数和列数,遍历一个元素就push_back进ret数组,每次遍历完一行或一列,相应行/列数--,进行顺时针螺旋遍历到为0即可。 细节:要有边界…...
使用EasyExcel和多线程实现高效数据导出
使用EasyExcel和多线程实现高效数据导出 1. 概述 在企业级应用中,数据导出是一个常见的需求。为了提高导出效率,尤其是在处理大量数据时,我们可以结合使用EasyExcel库和多线程技术。本文将详细介绍如何通过EasyExcel和多线程技术实现高…...
rabbitmq五种模式的实现——springboot
rabbitmq五种模式的实现——springboot 基础知识和javase的实现形式可以看我之前的博客 代码地址:https://github.com/9lucifer/rabbitmq4j-learning 一、进行集成 (一)Spring Boot 集成 RabbitMQ 概述 Spring Boot 提供了对 RabbitMQ 的自…...
每日学习Java之一万个为什么
9.Class <?> class1 Myclass.class 为什么要有通配符?传给谁用的? 首先,这里的class特指某个对象在JVM中的元数据集合。 有普通、接口、数组、基本类型、 void 类型、局部类、匿名类、枚举、注解 1.类型安全:通配符允许…...
寒假学习总结
整个寒假都走在数据结构与算法的路上,深入学习了其中多个板块,刷了一些与之对应的题目,下面来一期总结(c) (emmm,主播在寒假试着去学习了几大语言的语法基础(丢丢) 如Ja…...
Java Web开发实战与项目——用户认证与授权模块开发
Web应用中,用户认证与授权是至关重要的功能,确保只有合法用户才能访问受保护的资源。Spring Security作为一个强大的安全框架,支持多种认证与授权方式。在本章节中,我们将深入探讨三种常见的用户认证与授权方案:基于To…...
力扣每日一题【算法学习day.129】
前言 ###我做这类文章一个重要的目的还是记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!! 习题 1.数组列表中的最大距离 题目链接…...
uni-app发起网络请求的三种方式
uni.request(OBJECT) 发起网络请求 具体参数可查看官方文档uni-app data:请求的参数; header:设置请求的 header,header 中不能设置 Referer; method:请求方法; timeout:超时时间,单位 ms&a…...
字节火山云DeepSeek接入教程,支持联网,速度超快。
大家好,我是苍何。 在使用 DeepSeek 官网,实在是卡的我差点学猪叫,于是我一直在寻找替代方案。 要求就 2:满血,速度快。(当然能联网更好)。 我也一度使用了如硅基流动 API,发现也开…...
C语言指针学习笔记
1. 指针的定义 指针(Pointer)是存储变量地址的变量。在C语言中,指针是一种非常重要的数据类型,通过指针可以直接访问和操作内存。 2. 指针的声明与初始化 2.1 指针声明 指针变量的声明格式为:数据类型 *指针变量名…...
FreeRTOS-rust 编译分析
目录介绍 FreeRTOS-rust ├── .cargo # 对 cargo 本身的配置 │ └── config.toml ├── Cargo.toml # 对当前工作空间的配置 ├── freertos-cargo-build # 负责对 freertos 源码进行编译 │ ├── Cargo.toml # 对当前 package 进行配置 │ └…...
【解决方法】vite-plugin-svg-icons使用中出现问题[vite] Cannot find package ‘fast-glob‘
问题长这样: 参考文章:https://medium.com/wumeng9028/vite-plugin-svg-icons-error-cannot-find-package-fast-glob-8cb03d19c0ac 解决方法:pnpm add fast-glob -D package.json {"vite-plugin-svg-icons": "2.0.1"…...
[Qt] 使用QUndoStack运行到cmd->isObsolete()崩溃
redo/undo中又push了 崩溃情况崩溃原因解决方法 崩溃情况 在正常调用QUndoStack的redo/undo时,崩溃在了这里 unknown:0 QWidget: Cannot create a QWidget without QApplication. 崩溃原因 在正常调用QUndoStack的redo/undo时,因为自身的逻辑处理&a…...
大白话实战Sentinel
Sentinel是SpringCloudAlibaba提供的用来做服务保护的框架,而服务保护的常见手段就是限流和熔断降级。在大型分布式系统里面,由于微服务众多,所以服务之间的稳定性需要做特别关注,Sentinel的核心包就提供了从多个维度去保护服务稳定的策略,而且这些保护策略都可以连接上Se…...
DL/CV领域常见指标术语(FLOPS/mIoU/混淆矩阵/F1-measure)------一篇入门
1. FLOPS、FLOPs和GFLOPs FLOPS: floating-point operations per second,每秒浮点运算次数,用来衡量硬件性能。 FLOPs:floating point of operations,是浮点运算次数,用来衡量算法、模型的复杂度。 GFLOPSÿ…...
SprutCAMX16数控软件介绍
SprutCAM X 16 是一款功能强大的CAM(计算机辅助制造)软件,专为数控机床编程和制造过程优化设计。它广泛应用于机械加工、模具制造、3D打印等领域,支持多轴加工、车铣复合、机器人加工等多种加工方式。以下是SprutCAM X 16的主要特…...
Miniconda + VSCode 的Python环境搭建
目录: 安装 VScode 安装 miniconda 在VScode 使用conda虚拟环境 运行Python程序 1.安装 vscode 编辑器 官网链接:Visual Studio Code - Code Editing. Redefined 下载得到:,双击安装。 安装成功…...
TRELLIS 部署笔记
目录 依赖项安装 kaolin安装: 安装和运行报错解决 u2net.onnx 下载 解决方法,就是自行下载,然后拷贝到目录/root/.u2net bash测试u2net: 报错GaussianRasterizationSettings.__new__() got an unexpected keyword argument…...
深入解析Qt事件循环
在Qt开发中,QApplication::exec()这行代码是每个开发者都熟悉的“魔法咒语”。为什么GUI程序必须调用它才能响应操作?为何耗时操作会导致界面冻结?本文将以事件循环为核心,揭示Qt高效运转的底层逻辑,探讨其设计哲学与最…...
Visual Studio Code 集成 Baidu Comate
文章目录 安装Baidu Comate插件 安装Baidu Comate插件 从左主侧栏中 点击 【扩展】这个图标,然后在上方输入栏中输入 baidu comate —>选中列出的Bai Comate —>点击 【安装】按钮,等待安装完毕…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
