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

【剑指offer】顺时针打印矩阵

题目链接

acwing
leetcode

题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

数据范围矩阵中元素数量 [0,400]。

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

解题

用偏移量的思想来做!
在这里插入图片描述

  1. 所以定义偏移量数组
    • dx[] = {-1, 0, 1, 0} //dx存x的偏移量
    • dy[] = {0, 1, 0, -1} //dy存y的偏移量
  2. 枚举四个方向的时候,for循环i从0开始枚举到<4
  3. 求枚举后的新的坐标 a=x+dx[i] b=y+dy[i]
  4. 什么时候更换方向:当越界或者a,b的下标已经存在值之后 更换方向

代码实现

class Solution {int[] dx = {0, 1, 0, -1};int[] dy = {1, 0, -1, 0};public int[] printMatrix(int[][] matrix) {// 初始方向int d = 0;int xlength = matrix.length;if(xlength == 0) return new int[0];int ylength = matrix[0].length;int[] res = new int[xlength * ylength];boolean[][] visit = new boolean[xlength][ylength];int x = 0, y = 0;for(int i = 0; i < xlength*ylength; i ++){visit[x][y] = true;res[i] = matrix[x][y];int xNext = x + dx[d];int yNext = y + dy[d];if(xNext < 0 || xNext >= xlength || yNext < 0 || yNext >= ylength || visit[xNext][yNext]){d = (d + 1) % 4;xNext = x + dx[d];yNext = y + dy[d];}x = xNext;y = yNext;}return res;}
}

相关文章:

【剑指offer】顺时针打印矩阵

题目链接 acwing leetcode 题目描述 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 数据范围矩阵中元素数量 [0,400]。 输入&#xff1a; [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出&#xff1a;[1,2,3,4,8,12,11,10,9,5,6,7] 解题 …...

推特社交机器人分类

机器人有不同的种类。 cresci-17数据集中的三种不同的机器人类:传统垃圾机器人、社交垃圾机器人和假追随者。 传统的垃圾邮件机器人会生成大量推广产品的内容&#xff0c;并且可以通过频繁使用的形容词来检测; 社交垃圾邮件倾向于攻击或支持政治候选人&#xff0c;因此情绪是一…...

openGauss增量备份恢复

openGauss 增量备份恢复 openGauss 数据库自 2020 年 6 月 30 日发布以来&#xff0c;很多小伙伴都提到“openGauss 数据库是否有增量备份工具&#xff1f;“这么一个问题。 在 openGauss 1.0.0 版本的时候&#xff0c;关于这个问题的回答往往是&#xff1a;“Sorry…”&…...

Idea与DataGrip各版本通用破解码,无需脚本。

直接输入即可。若失效&#xff0c;访问网址http://idea521.com/即可获取新的破解码。亲测好用。 Idea与DataGrip是一个公司的产品&#xff0c;这里的破解码可通用。 破解码一&#xff1a; 375XQD8EO2-eyJsaWNlbnNlSWQiOiIzNzVYUUQ4RU8yIiwibGljZW5zZWVOYW1lIjoi5YWo5a625qG2IHd…...

C++作业day6

编程1&#xff1a; 封装一个动物的基类&#xff0c;类中有私有成员&#xff1a;姓名&#xff0c;颜色&#xff0c;指针成员年纪 再封装一个狗这样类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有&#xff1a;指针成员&#xff1a;腿的个数&#xff08;整型 …...

mysql的单表、多表查询和数据类型

一、MySQL数据库表操作 MySQL表的基本概念 在windows中有个程序叫做excel. 而Excel文件中存在了如sheet1、sheet2、sheet3的表, 所有的sheet都存储在这个Excel文件中, 在某个sheet中有相应的数据. 回到数据库和表的关系上来说, 这个Excel文件就是一个数据库, 所有的sheet就是…...

中间件-消息队列

消息队列基础知识 什么是消息队列 本处提到的消息队列是指各个服务以及系统组件/模块之间的通信&#xff0c;属于一种中间件。参与消息传递的双方称为生产者和消费者&#xff0c;生产者负责发送消息&#xff0c;消费者负责处理消息。 消息队列作用 通过异步处理&#xff0…...

一文get,最容易碰上的接口自动化测试问题汇总

本篇文章分享几个接口自动化用例编写过程遇到的问题总结&#xff0c;希望能对初次探索接口自动化测试的小伙伴们解决问题上提供一小部分思路。 sql语句内容出现错误 空格&#xff1a;由于有些字段判断是变量&#xff0c;需要将sql拼接起来&#xff0c;但是在拼接字符串时没有…...

Oracle:ORA-01830错误-更改数据库时间格式

1,先把报错SQL语句拿出来执行&#xff0c;看看是不是报的这个错 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 2&#xff0c;然后查看默认日期格式是不是“YYYY-MM-DD HH24:MI:SS”&#xff08;正确格式&#xff09;。&#xff1b; 执行&#xff1a; SELECT * FRO…...

树状数组及应用

目录 1.树状数组的概念与基本编码 1.1.引导 1.2.lowbit(x) 1.3.树状数组的编码 2.树状数组的基本应用 2.1.单点修改&#xff0b;区间查询 2.2.区间修改单点查询 例题&#xff1a; 2.3.区间修改&#xff0b;区间查询 例题&#xff1a; 如果数列A是静态不变的&#xff…...

HarmonyOS 应用开发案例

本帖下方集中了HarmonyOS Next应用开发时&#xff0c;会遇到的常见应用案例。后续会持续更新大量案例&#xff0c;帮助开发者快速学习。欢迎感兴趣的同学加入Q&#xff1a;454901491 72.手写绘制及保存图片案例&#xff08;0319更新&#xff09;&#xff08;点此查看源码实现&…...

【C++ leetcode】双指针(专题完结)

15. 三数之和 题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的…...

动态代理大总结

1.开启EnableAspectJAutoProxy注解 @EnableAspectJAutoProxy注解【相当于加了个BeanPostProcessor】,会导入AspectJAutoProxyReqistrar这个类,会把AnnotationAwareAspectJAutoProxyCreator注册进spring容器中,注册进容器后还会看这两个属性的值【proxyTargetClass,exposeP…...

理解Harris角点检测的数学原理

Harris角点检测的数学原理 Harris角点检测基于图像的局部自相似性,它通过分析图像窗口在各个方向上移动时灰度变化的程度来识别角点,它通过计算每个像素点的Harris响应值来评估该点是否为角点。数学上,这种变化可以通过构建一个二次型函数来量化,该函数基于图像在x和y方向上…...

ETIM -国际贸易的产品分类标准

ETIM 是除了XML 国际交流标准BMEcat之外的国际贸易的产品分类标准。 什么是ETIM &#xff1f; ETIM是一种基于分类识别共享和交换产品数据的格式。这种广泛使用的技术产品分类标准是为了构建 B2B 专业人员之间的信息流而制定的。 为什么选择ETIM&#xff1f; ETIM分类模型的开…...

MySQL高阶SQL语句

文章目录 MySQL高阶SQL语句MySQL常用查询1、按关键字排序1.1 语法1.2 ASC和DESC1.3 对数据表中信息进行排序1.3.1 普通排序1.3.2 结合where进行条件过滤1.3.3 对多个字段进行排序 2、区间判断及查询不重复记录2.1 and/or —— 且/或2.1.1 普通查询2.1.2 嵌套/多条件查询 2.2 di…...

聊聊CSS

css 的介绍 学习目标 能够知道css的作用 1. css 的定义 css(Cascading Style Sheet)层叠样式表&#xff0c;它是用来美化页面的一种语言。 没有使用css的效果图 使用css的效果图 2. css 的作用 美化界面, 比如: 设置标签文字大小、颜色、字体加粗等样式。 控制页面布局, 比如…...

C语言 青蛙跳台阶问题

目录 ​编辑 1.问题描述 2.问题分析 3.全部代码 4.结语 1.问题描述 一只青蛙可以一次跳一级台阶&#xff0c;也可以一次跳两级台阶&#xff0c;如果青蛙要跳上n级台阶有多少种跳法&#xff1f; 2.问题分析 当台阶只有一级时&#xff0c;只能跳一级&#xff0c;所以只有一…...

【Django开发】前后端分离美多商城项目第3篇:用户部分,1. 后端接口设计:【附代码文档】

美多商城项目4.0文档完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;美多商城&#xff0c;项目准备1.B2B–企业对企业,2.C2C–个人对个人,3.B2C–企业对个人,4.C2B–个人对企业。项目准备&#xff0c;配置1. 修改settings/dev.py 文件中的路径信息,2. INS…...

DHCP snooping、DHCP安全及威胁防范

DHCP snooping、DHCP安全及威胁防范 [SW1]display dhcp snooping user-bind all&#xff0c;查看DHCP snooping表项。 DHCP snooping&#xff1a; 表项是通过服务器发送给客户端的ACK报文生成的。 只能在交换机上开启&#xff0c;路由器不支持&#xff0c;并且建议在接入交…...

Ubuntu 18.04环境下小米K30U内核编译实战与排错指南

1. 项目概述与核心价值最近在折腾一台小米K30U&#xff0c;想给它刷个自定义内核&#xff0c;体验一下超频或者优化调度。但网上的教程要么是针对新机型&#xff0c;要么就是环境配置说得不清不楚&#xff0c;特别是对于Ubuntu 18.04这个已经有点“年迈”但依然稳定的系统版本&…...

UVA12822 Extraordinarily large LED 题解

UVA12822 Extraordinarily large LED 题目描述 Link: https://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category861&pageshow_problem&problem4687 PDF 输入格式 输出格式 输入输出样例 #1 输入 #1 START 09:00:00 SCORE 09:01:05…...

Monk AI小样本分类实战:用几十张图快速构建可用AI模型

1. 项目概述&#xff1a;用 Monk AI 做分类&#xff0c;但只喂它一小块数据——这到底在解决什么问题&#xff1f;“Classification Using Monk AI by Using a Slice of the Dataset”这个标题乍看平平无奇&#xff0c;甚至有点拗口&#xff0c;但如果你在工业质检、医疗影像初…...

Unity Stencil属性丢失根因与Property ID注册机制解析

1. 这个报错不是材质丢了&#xff0c;是Unity在“认人”时看错了身份证你在Unity编辑器里猛敲CtrlS保存场景&#xff0c;突然控制台炸出一行红字&#xff1a;Material xxx doesnt have _Stencil property。你第一反应可能是——“我明明在Shader里写了_Stencil&#xff0c;也加…...

2026年想在成都装中央空调?哪家安装质保好这里有答案!

家人们&#xff0c;2026年了&#xff0c;在成都想要装中央空调的小伙伴看过来&#xff01;我作为一个在中央空调领域摸爬滚打多年的真实体验者&#xff0c;深知大家在选择空调时的纠结和痛点。就拿成都的气候来说&#xff0c;夏天闷热&#xff0c;空调得使劲儿制冷&#xff1b;…...

Agent 场景落地:从概念演示到真实服务

当下 Agent 概念火热&#xff0c;但多数仍停留在实验室演示、概念展示阶段&#xff1a;发布会效果惊艳&#xff0c;却难以真正走进银行、门店、家庭等真实服务场景&#xff0c;解决实际问题。 行业共识逐渐清晰&#xff1a;Agent 的价值不在酷炫演示&#xff0c;而在真实场景里…...

炉石传说佣兵战记自动化脚本:告别重复操作的全能指南

炉石传说佣兵战记自动化脚本&#xff1a;告别重复操作的全能指南 【免费下载链接】lushi_script This script is to save your time from Mercenaries mode of Hearthstone 项目地址: https://gitcode.com/gh_mirrors/lu/lushi_script 还在为《炉石传说》佣兵战记模式中…...

博客从 Ubuntu 16.04 迁移到 FreeBSD:成本减半,性能提升超 10 倍!

Bruno Croci 的网站迁移之旅Bruno Croci 正在为 2026 年柏林的开源硬件峰会做准备。他的博客在 Ubuntu 16.04 上运行了 10 年&#xff0c;于 2026 年 5 月 21 日&#xff0c;他将其迁移到了 FreeBSD。迁移动机&#xff1a;旧系统的安全隐患与成本考量这个博客在 Digital Ocean …...

Barlow字体:54种样式打造专业级设计效果,提升你的视觉表达力

Barlow字体&#xff1a;54种样式打造专业级设计效果&#xff0c;提升你的视觉表达力 【免费下载链接】barlow Barlow: a straight-sided sans-serif superfamily 项目地址: https://gitcode.com/gh_mirrors/ba/barlow Barlow是一款源自加州公共视觉美学的专业字体家族&a…...

终极RPG Maker MV/MZ游戏资源解密工具:三步搞定加密文件提取

终极RPG Maker MV/MZ游戏资源解密工具&#xff1a;三步搞定加密文件提取 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://g…...