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

【每日一题】54. 螺旋矩阵

54. 螺旋矩阵 - 力扣(LeetCode)

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

示例 1:

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

示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 10
  • -100 <= matrix[i][j] <= 100

class Solution {int x=0,y=0;public List<Integer> spiralOrder(int[][] matrix) {ArrayList<Integer> arr = new ArrayList();int row = matrix.length;int col = matrix[0].length;System.out.print(row);int total = row * col - 1;int count = 0;arr.add(matrix[0][0]);for(int i = 0 ;count < total; ++i) {y+=1;while(y<(col-i))   { arr.add(matrix[x][y]);y++;count++;}if(count>=total) break;y-=1;x+=1;while(x<(row-i))  {  arr.add(matrix[x][y]);x++;count++;}if(count>=total) break;x-=1;y-=1;while(y>=i)     {    arr.add(matrix[x][y]);y--;count++;}if(count>=total) break;y+=1;x-=1;while(x>i)      {   arr.add(matrix[x][y]);x--;count++;}if(count>=total) break;x+=1;}return arr;}
}

        这是一道中等题,但是实际难度来算的话,博主觉得是达不到中等题的程度的,所以大家刷题的时候,不要被题目标记的难度所吓倒。、

         这道题其实也是模拟就可以解决。主要的问题在于边界的控制。

        按照这个例子来说,可以使用x,y来表示行和列,用arrlist来存储最后的答案。之后就是循环的问题了,循环无非就是对x,y进行操作,并且将操作完的元素加入arraylist就可以了。循环就需要涉及到用来循环控制的数,循环的控制条件就是arraylist是否已经将所有的数加入了,如果是,那么就无需继续循环了。所以可以用一个count来计数,一旦count和元素组中的元素个数相同,就是已经放完就可以退出循环了。

        之后观察一下矩阵,发现是一圈一圈循环进去的,那么第一圈实际就是0行,竖列就是0列而最底下的第一圈就是row-1行,竖列就是col-1列。那我们在实际循环过程中可以使用小于来控制,那么实际写入的边界控制就是row行和col列。而row=row-0,col=col-0.发现了吗?如果没有,那么再走一行,横行是第1行,竖列是第1列,底下横行(边界控制的数)就是row-1,列就是col-1.所以实际上就可以用i,row-i,col-i来进行循环,就可以了,因为每列首个要去掉,所以可以将第一列第一个先放入,之后每次循环完就对x或y先进行一个+-1的操作,从而使数不会重复。

        这样一道中等题就解决了。

相关文章:

【每日一题】54. 螺旋矩阵

54. 螺旋矩阵 - 力扣&#xff08;LeetCode&#xff09; 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5…...

git:一些撤销操作

参考自 如何撤销 Git 操作&#xff1f;[1] 一、撤销提交 git revert HEAD 撤销上次提交. (会在当前提交后面&#xff0c;新增一次提交&#xff0c;抵消掉上一次提交导致的所有变化,所有记录都会保留) 二、撤销某次merge git merge --abort 三、替换上一次提交 git commit --ame…...

leetcode 209. 长度最小的子数组

题目链接&#xff1a;leetcode 209 1.题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c…...

《rk3399:各显示接口的dts配置》

这里写目录标题 一、前言二、平台支持的显示接口三、两个VOP支持的最大输出分辨率四、VOPL的dts配置五、VOPB的dts配置六、display_subsystem的配置七、backlight 背光配置八、针对eDP接口的配置 以firefly为例8.1 原生配置8.2 启用eDP屏接口配置九、针对MIPI接口屏的配置 以fi…...

Python数据分析-Pandas

Pandas 个人笔迹&#xff0c;建议不看 import pandas as pd import numpy as npSeries类型 spd.Series([1&#xff0c;3&#xff0c;5&#xff0c;np.nan,6,8],index[a,b,c,d,e]) print(s) # 默认0-n-1&#xff0c;否则用index数组作行标 s.index s.value # array() s[a] &g…...

golang 多线程管理 -- chatGpt

提问&#xff1a; 用golang写一个启动函数 start(n) 和对应的停止函数stopAll(),. start函数功能&#xff1a;启动n个线程&#xff0c;线程循环打印日志&#xff0c;stopAll()函数功能&#xff1a;停止start启动的线程 以下是一个示例的Golang代码&#xff0c;其中包括 start…...

【Math】导数、梯度、雅可比矩阵、黑塞矩阵

导数、梯度、雅可比矩阵、黑塞矩阵都是与求导相关的一些概念&#xff0c;比较容易混淆&#xff0c;本文主要是对它们的使用场景和定义进行区分。 首先需要先明确一些函数的叫法&#xff08;是否多元&#xff0c;以粗体和非粗体进行区分&#xff09;&#xff1a; 一元函数&…...

【C语言】——调试技巧

目录 ​编辑 ①前言 1.什么是Bug&#xff1f; 2.什么是调试&#xff1f; 2.1调试的基本步骤 2.2Release与Debug 3.常用快捷键 4.如何写出好的代码 4.1常见的coding技巧 &#x1f449;assert() &#x1f449;const() const修饰指针: ①前言 调试是每个程序员都…...

【Python】pytorch,CUDA是否可用,查看显卡显存剩余容量

CUDA可用&#xff0c;共有 1 个GPU设备可用。 当前使用的GPU设备索引&#xff1a;0 当前使用的GPU设备名称&#xff1a;NVIDIA T1000 GPU显存总量&#xff1a;4.00 GB 已使用的GPU显存&#xff1a;0.00 GB 剩余GPU显存&#xff1a;4.00 GB PyTorch版本&#xff1a;1.10.1cu102 …...

React16入门到入土

搭建环境 默认你已经安装好 node.js 安装 react 脚手架 学习的过程中&#xff0c;我们采用React官方出的脚手架工具 create-react-app npm install -g create-react-app如果提示没有权限&#xff0c;win 用户可以管理员打开终端&#xff0c;mac 用户 可以在前面加上 sudo …...

【GPT引领前沿】GPT4技术与AI绘图

推荐阅读&#xff1a; 1、遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型应用 2、GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术 GPT对于每个科研人员已经成为不可或缺的辅助工具&#xff0c;不同的研究领域和项目具有不同的需求。例如在科研编程…...

【LeetCode】19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点&#xff08;中等&#xff09; 方法&#xff1a;快慢指针 思路 为了找到倒数第 n 个节点&#xff0c;我们应该先找到最后一个节点&#xff0c;然后从它开始往前数 n-1 个节点就是要删除的节点。 对于一般情况&#xff1a;设置 fast 和 slow 两个…...

spring boot3.x集成swagger出现Type javax.servlet.http.HttpServletRequest not present

1. 问题出现原因 spring boot3.x版本依赖于jakarta依赖包&#xff0c;但是swagger依赖底层应用的javax依赖包&#xff0c;所以只要已启动就会报错。 2. 解决方案 移除swagger2依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfo…...

《低代码指南》——智能化低代码开发实践案例

大模型能通过自然语言理解自动生成需求文档及代码供给低代码开发者使用&#xff0c;也具备自动检测和修复代码错误、自动优化代码、找出冗余并提供高效方案等自动化能力&#xff0c;为开发者带来需求模式、设计模式、开发模式的变化&#xff0c;节省时间成本、代码质量更优、进…...

268_C++_字节计算(((bits) + 7) / 8)、字节对齐(((number) + 3) / 4 * 4)

这段代码中包含了两个宏的定义,它们似乎用于进行位操作和字节对齐操作。让我们逐个来解析这两个宏: BITS_TO_BYTES(bits) 宏:#define BITS_TO_BYTES(bits) (((bits) + 7) / 8)这个宏的作用是将位数(bits)转换为字节数(bytes)。它的计算方式是将位数加上7,然后除以8,这…...

JavaWeb知识梳理(后端部分)

JavaWeb 静态web资源&#xff08;如html 页面&#xff09;&#xff1a;指web页面中供人们浏览的数据始终是不变。 动态web资源&#xff1a;指web页面中供人们浏览的数据是由程序产生的&#xff0c;不同时间点访问web页面看到的内容各不相同。 静态web资源开发技术&#xff1…...

AI:07-基于卷积神经网络的海洋生物的识别

当涉及海洋生物的识别和研究时,基于深度学习的方法已经展现出了巨大的潜力。深度学习模型可以利用大量的图像和标记数据来自动学习特征,并实现高准确度的分类任务。本文将介绍如何使用深度学习技术来实现海洋生物的自动识别,并提供相应的代码示例。 数据收集和预处理 要训…...

centos7下docker设置新的下载镜像源并调整存放docker下载镜像的仓库位置

目录 1.设置镜像源 2.调整存放下载镜像的仓库位置 1.设置镜像源 在 /etc/docker下创建一个daemon.json文件。在json中下入 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] 完成配置 加载配置 systemctl daemon-reload 重启docker sy…...

Gitea--私有git服务器搭建详细教程

一.官方文档 https://docs.gitea.com/zh-cn/说明 gitea 是一个自己托管的Git服务程序。他和GitHub, Gitlab等比较类似。他是从 Gogs 发展而来&#xff0c;gitea的创作团队重新fork了代码&#xff0c;并命名为giteagitea 功能特性多&#xff0c;能够满足我们所有的的代码管理需…...

SOLIDWORKS放样是什么意思?

SOLIDWORKS是一款广受欢迎的三维计算机辅助设计&#xff08;CAD&#xff09;软件&#xff0c;提供了许多强大的功能来帮助工程师实现他们的创意。其中一个重要的功能是放样功能&#xff0c;它在设计过程中起着至关重要的作用。本文将介绍SOLIDWORKS放样的概念、特点和应用。 放…...

工业数据采集避坑指南:Java+Utgard实现OPC DA高可靠通信的3个关键技巧

工业数据采集避坑指南&#xff1a;JavaUtgard实现OPC DA高可靠通信的3个关键技巧 在工业自动化领域&#xff0c;OPC DA&#xff08;OLE for Process Control Data Access&#xff09;协议作为连接工业设备和信息系统的桥梁&#xff0c;其稳定性直接关系到生产数据的完整性和实时…...

OpenClaw多模型切换:GLM-4.7-Flash与Qwen混合使用指南

OpenClaw多模型切换&#xff1a;GLM-4.7-Flash与Qwen混合使用指南 1. 为什么需要多模型切换&#xff1f; 去年我在尝试用OpenClaw自动化处理技术文档时&#xff0c;发现单一模型很难满足所有需求。有些任务需要快速响应&#xff08;如简单问答&#xff09;&#xff0c;有些则…...

LFM2.5-1.2B-Thinking-GGUF快速问答效果展示:对比云端大模型的响应速度与成本

LFM2.5-1.2B-Thinking-GGUF快速问答效果展示&#xff1a;对比云端大模型的响应速度与成本 1. 本地轻量模型的惊艳表现 最近在测试LFM2.5-1.2B-Thinking-GGUF这个轻量级模型时&#xff0c;它的表现着实让我惊喜。这个只有12亿参数的模型&#xff0c;在本地CPU环境下运行&#…...

SeqGPT-560M部署避坑:常见‘加载中’卡顿、端口冲突、GPU未识别解决

SeqGPT-560M部署避坑&#xff1a;常见‘加载中’卡顿、端口冲突、GPU未识别解决 1. 模型简介与核心价值 SeqGPT-560M是阿里达摩院推出的零样本文本理解模型&#xff0c;这个560M参数量的轻量级模型专门针对中文场景优化&#xff0c;无需训练就能直接处理文本分类和信息抽取任…...

OpenClaw多任务测试:nanobot镜像并行处理能力评估

OpenClaw多任务测试&#xff1a;nanobot镜像并行处理能力评估 1. 测试背景与目标 最近在探索OpenClaw的自动化能力边界时&#xff0c;我遇到了一个实际需求&#xff1a;能否让这个智能体框架同时处理多个不同类型的任务&#xff1f;比如一边整理本地文件&#xff0c;一边抓取…...

Spring Cloud Hystrix 详细示-元一软件

Hystrix 是 Spring Cloud 中实现服务熔断、降级、隔离的核心组件&#xff0c;用于解决微服务架构中的雪崩效应&#xff0c;核心是快速失败、优雅降级、自动恢复。以下从环境搭建、基础使用、高级配置、Feign 整合、监控5 个维度提供完整示例。一、项目环境准备1. 依赖引入&…...

PROJECT MOGFACE效果对比:不同提示词(Prompt)工程下的输出质量

PROJECT MOGFACE效果对比&#xff1a;不同提示词&#xff08;Prompt&#xff09;工程下的输出质量 你是不是也遇到过这种情况&#xff1f;用同一个AI模型&#xff0c;别人生成的回答妙语连珠&#xff0c;你得到的却平平无奇。问题可能就出在那几句“悄悄话”——提示词上。 今…...

League Toolkit:重新定义英雄联盟游戏体验的智能辅助工具集

League Toolkit&#xff1a;重新定义英雄联盟游戏体验的智能辅助工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的…...

OpenClaw安全实践:GLM-4.7-Flash模型权限控制与操作审计

OpenClaw安全实践&#xff1a;GLM-4.7-Flash模型权限控制与操作审计 1. 为什么需要关注OpenClaw的安全配置 去年冬天的一个深夜&#xff0c;我的个人笔记库突然出现了大量异常文件操作记录。当时我正在测试OpenClaw的自动化归档功能&#xff0c;由于没有正确配置权限边界&…...

芯片可靠性测试避坑指南:为什么你的FCBGA封装必须做BHast(附硬件制备全流程)

芯片可靠性测试避坑指南&#xff1a;为什么你的FCBGA封装必须做BHast&#xff08;附硬件制备全流程&#xff09; 在芯片可靠性测试领域&#xff0c;BHast&#xff08;Highly Accelerated Temperature and Humidity Stress Test&#xff09;是一个经常被讨论却又容易被误解的测试…...