顺时针打印矩阵(二十八)

UG476 GT Transceivers文档翻译和自身理解 对UG476 Xilinx官方文档进行翻译的基础上加上自己的理解 阅读详情

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

[ [1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]

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

算法
(模拟) O(n^2)
我们顺时针定义四个方向:上右下左。
从左上角开始遍历,先往右走,走到不能走为止,然后更改到下个方向,再走到不能走为止,依次类推,遍历 n^2 个格子后停止。

时间复杂度
矩阵中每个格子遍历一次,所以总时间复杂度是 O(n^2)。

class Solution {
    public int[] printMatrix(int[][] matrix) {
        ArrayList<Integer> res = new ArrayList();
        int n = matrix.length;
        if(n == 0) return res.stream().mapToInt(Integer::valueOf).toArray();
        //必须写在判断n是否为0的下面,否咋会报空指针异常
        int m = matrix[0].length;
        //上右下左
        int[] dx = {-1,0,1,0},dy={0,1,0,-1};
        boolean[][] st = new boolean[n][m];
        int x = 0,y = 0,d = 1;
        for(int k = 0;k < m*n;k++){
            res.add(matrix[x][y]);
            st[x][y] = true;
            int a = x + dx[d],b = y + dy[d];
            //判断越界改变方向
            if(a < 0 || a >= n || b < 0 || b >=m || st[a][b]){
                d = (d + 1) % 4;
                a = x + dx[d];
                b = y + dy[d];
            }
            x = a;
            y = b;
        }
        //将Integer类型的ArrayList转化为数组
        return res.stream().mapToInt(Integer::valueOf).toArray();
    }
}

12.工具高级参数CogCalibNPointToNPointTool CogCalibNPointToNPointTool是一种多点2D坐标校正工具,用于将图像像素坐标转换为物理世界坐标。该工具通过两组点(图像坐标点和物理坐标点)计算最佳转换关系,并将结果保存供后续使用。操作步骤包括获取图像、添加坐标点对、计算转换参数。校正结果会显示平移、缩放、旋转等参数及RMS误差值,较大的误差可能表明点位置不准确或自由度不足。该工具广泛应用于机器视觉领域,通过9点标定等案例可验证坐标转换的准确性并优化参数设置。 阅读详情

相关推荐

Cadence Spectre仿真保姆级教程:从DC/AC到PSS/PV,手把手教你搞定模拟电路分析

作为业界标准的Cadence Spectre仿真器,以其精确的算法和丰富的分析类型,成为每个模拟IC工程师必须掌握的利器。本文将带你从零开始,系统掌握Spectre仿真的核心技能,从最基础的DC工作点分析到复杂的PSS相位噪声仿真,每个步骤都配有详细的操作指导和实用技巧。记得我第一次使用Spectre仿真一个简单的两级运放时,花了整整三天时间才得到正确的AC响应曲线。过程中踩过的坑、浪费的时间,现在想来都是宝贵的学习资源。与传统的AC分析不同,STB分析可以在不破坏环路的情况下评估稳定性。

weixin_30898555的博客 335

Directx11教程二十八之PlannarReflection(基于stencilBuffer的实现)

这节教程可以作为我的那节 “”D3D11教程十九之平面反射(planar reflect)“”的补充,那节教程的反射镜像是利用RenderToTexture技术生成的反射纹理形成的,而这节教程的镜像是基于stencilBuffer和DepthBuffer技术形成的. 首先给出这节教程的结构: 一,介绍stencilBuffer 模板缓存决定了是否可以进行深

qq_29523119的博客 1376

腾讯大佬总结的170道 python面试题

简述基于 TCP 协议的套接字通信流程。19.面向对象中`__new__` 和 `__init__` 区别。86. 解释 Python 中的`//`,`%`和`**`运算符。45.isinstance 的作用以及与 type()的区别。3. 简述下 Python 中的字符串、列表、元组和字典。143. 如何高效的找到 redis 中的某个 KEY。140. 如何保证 redis 中的数据都是热点数据。147. redis 中的 watch 的命令的作用。108. 简述 进程、线程、协程的区别以及应用场景。

AudiA6LV6的博客 491

【Java版本】剑指offer所有面试题(完整版题解3)

文章目录第二十一题-调整数组顺序使奇数位于偶数第二十二题-链表中倒数第k个节点第二十三题-链表中环的入口节点第二十四题-反转链表第二十五题-合并两个链表第二十六题-树的结构第二十七题-二叉树的镜像第二十八题-对称二叉树第二十九题-顺时针打印矩阵第三十题-包含min函数的栈 第二十一题-调整数组顺序使奇数位于偶数 public class Test14 { public static void reorderOddEven(int[] arr){ if(arr == null ||

小七自学博客 984

【Coze 扣子案例】第 23 期・商业篇:一键获取精准商机,自动化招标信息查询与分析

通过地区和项目类型等多维度组合查询全国招标信息网数据,实现招标公告的快速定位。自动解析招标公告内容,提取关键信息,并生成结构化摘要。帮助企业高效获取精准商机,提升市场竞争力,降低人工成本,解决 “信息过载” 与 “精准匹配难” 的双重问题。

weixin_72689845的博客 1928

实战ByteTrack:用C++手把手教你实现多目标跟踪(附完整代码解析)

本文通过C++实战教程,手把手教你实现ByteTrack多目标跟踪算法。文章详细解析了算法核心,包括利用卡尔曼滤波进行状态预测、匈牙利算法完成数据关联,以及ByteTrack独特的三次匹配策略来有效处理低置信度检测框,并提供了完整的项目架构、代码实现与性能优化指南。

yolo5detector的博客 300

【剑指Offer】解题思路拆解Java版——第三期

下面这段时间带来的是对于剑指Offer(第二版)一书中的算法题目进行阅读并分享。原书中一共66道题目,我们就一天11道,用六天的时间来进行讲解,最后一天来个总结,争取在一周的时间内介绍完这66道经典题目。要是喜欢的欢迎关注公众号《Java冢狐》来追更! 今天是剑指Offer的第三期, 另外由于原书是C++代码编写而成,这边我们用Java来实现一遍,顺便说一下相关的面试知识点,一起进行面试前的复习。希望大家能够喜欢。 另外有些地方的讲解可能并不是十分到位,在此更推荐更大家去看原书。 那么话不多少,让我们开始今

冢狐的私人空间 236

verilog学习——Verilog的行为建模/Behavioral modeling(2)

函数的用途是返回要在表达式中使用的值。函数定义始终以关键字function开始,后跟返回类型、名称和在参数中的端口列表。函数以关键字endfunction结束。函数至少有一个输入,如果不返回任何内容,则返回类型为void。由两种方法可以声明函数的输入;函数定义隐式地创建一个与函数同名的内部变量。通过将函数结果分配给内部变量来初始化返回值。函数调用是带有表达式的操作数。① 函数不能包含任何时间控制语句,如#、@、wait、posedge、negedge;

LXY241638的博客 1367

leetcode剑指offer合集+题解

目录一、用两个栈实现队列题目解题思路AC代码二、包含min函数的栈题目解题思路AC代码三、从尾到头打印链表题目解题思路AC代码四、反转链表题目解题思路AC代码五、复杂链表的复制题目解题思路AC代码六、替换空格题目解题思路AC代码七、左旋转字符串题目解题思路AC代码八、数组中重复的数字题目解题思路AC代码九、I. 在排序数组中查找数字题目解题思路AC代码十、II. 0~n-1中缺失的数字题目解题思路AC代码十一、二维数组中的查找题目解题思路AC代码十二、旋转数组的最小数字题目解题思路AC代码十三、第一个只出现

陈颜的博客 3891

FFmpeg入门详解之110:RTSP协议讲解

TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。正在上传…重新上传取消RTSP是基于文本的协议,采用ISO10646字符集,使用UTF-8编码方案。行以CRLF中断(\r\n:10,13:0x0A,0x0D),包括消息类型、消息头、消息体和消息长。

福优学苑@音视频+流媒体 2529

UG\NX二次开发 替换部件引用集UF_ASSEM_replace_refset

替换部件引用集UF_ASSEM_replace_refset,需要替换成“完整部件(Entire Part)”需要第三个参数传入空指针或者空字符串。

王牌飞行员_里海的博客 255

剑指offer之js版

本文仅为刷题整理以供自己后续复习,难易程度为本人自身感受,与官方无关。有错误之处请指出!

qq_38652677的博客 1708

基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机

目录基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机项目实例1. 项目背景2. 系统架构2.1 电励磁同步电动机模型2.2 三相逆变器模型2.3 自适应控制器(Adaptive Controller)2.4 系统框图3. 模型设计3.1 创建Simulink模型3.2 自适应控制(Adaptive Control)设计3.3 仿真环境搭建4. 参数优化4.1 自动调优5. 实际应用案例5.1 工业驱动系统5.2 风力发电系统6. 结论进一步优化建议需求分析电励磁同步电动机

MHD0815的博客 266

《剑指offer》解法总结

剑指offer这本书之前看过一次,今天又在牛客网上完成了最后一道题的编程。 第一次这本书,对于思路和编程都是难点;第二次在牛客网上刷题的时候,越来越感觉编程并非难点,难点在于没有解题思路,下不了手。如果知道了解题思路,大部分题目解出来只是时间问题。如果你也是这种情况,编程问题不大就是没有思路,那欢迎你来看我的文章。如果本身不会写代码,还是自己去做一遍的比较好。 在做完最后一题以后,返回去看前面...

微鉴道长的博客 1608

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

剑指offer:整理总结-目录

我找工作走了不少弯路,一开始听不懂面试官说啥呢 ,到后来开始学习算法,再后来只要说题目就可以写出来,我觉得还是先背住一些题较好,当时把这些都背住了,只要一说题目,一分钟之内一定写完。 剑指offer66题 链表(8道): 三:从尾到头打印链表 十四:链表中倒数第k个结点 十五:反转链表 十六:合并两个排序的链表 二十五:复杂链表的复制 三十六:两个链表的第一个公共结点 五十五:链表中环的入口结点 五十六:删除链表中重复的结点 二叉树(12道): 四:重建二叉树 十七:树的子结构 十八:二叉树的镜像 二十二:

wowenlong的博客 615

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

剑指Offer系列刷题笔记汇总

本文转自:个人网站:点击查看 一前言 二总结 链表-8道 二叉树12道 二叉搜索树3道 数组11道 字符串8道 栈3道 递归4道 回溯法2道 其他15道 一、前言 本系列文章为《剑指Offer》刷题笔记。 刷题平台:牛客网 书籍下载:共享资源 刷题刷的比较慢,花费了两个多月,终于将所有题目过了一遍,牛客网一共有66道题,这次刷题主要使用C++,接下来会使用Python...

Jack-Cui 5万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

150页的剑指Offer解答PDF,它来了!!!

它来了!!! 终于整理出了第一版剑指Offer的PDF,主要以Java语言为主,一共67道题,100多页。 领取方式如下(无套路直接获取百度网盘的 ???? 链接,如果链接失效可以直接找我): 【秦怀杂货店】公众号内发送:剑指Offer 刷题仓库:CodeSolution ,具体的分类如下: 数组 剑指Offer(二)–二维数组中的查找 剑指Offer(十三)–调整数组顺序使奇数位于偶数前面 剑指Offer(十九)-- 顺时针打印矩阵 剑指Offer(二十八)-- 数组中次数出现超过一半的数字 剑指

秦怀杂货店 6976

《剑指offer》答案整理

  第一题,二维数组中的查找:https://blog.youkuaiyun.com/a745233700/article/details/82108738 第二题,替换空格:https://blog.youkuaiyun.com/a745233700/article/details/82730804 第三题,从头到尾打印链表:https://blog.youkuaiyun.com/a745233700/article/det...

张维鹏的博客 3041

剑指offer(python)-记录题解思路

把草稿箱里文章拿出来分享一下。 目录 第一题 (数组)二维数组中的查找 第二题 (字符串) 替换空格 第三题 (链表) 从尾到头打印链表 第四题 (树) 重建二叉树 第五题 (栈和队列)用两个栈实现队列 第六题 (查找和排序)旋转数组的最小数字 第七题 (递归和循环)斐波那契数列 第八题 (递归和循环)跳台阶 第九题 (递归和循环) 变态跳台阶 第十题 (递归和循环)...

故沉的博客 1723

剑指offer C++、Python版

一前言 二总结 链表-8道 二叉树12道 二叉搜索树3道 数组11道 字符串8道 栈3道 递归4道 回溯法2道 其他15道 一、前言 本系列文章为《剑指Offer》刷题笔记。 刷题平台:牛客网 书籍下载:共享资源 刷题刷的比较慢,花费了两个多月,终于将所有题目过了一遍,牛客网一共有66道题,这次刷题主要使用C++,接下来会使用Python重新过一遍,并对这些写过的文章进行更新。同...

YLC_慕类的博客 975

剑指offer题目

剑指offer 链表(8道): 三:从尾到头打印链表 十四:链表中倒数第k个结点 十五:反转链表 十六:合并两个排序的链表 二十五:复杂链表的复制 三十六:两个链表的第一个公共结点 五十五:链表中环的入口结点 五十六:删除链表中重复的结点 二叉树(12道): 四:重建二叉树 十七:树的子结构 十八:二叉树的镜像 二十二:从上往下打印二叉树 二十四:二叉树中和为某一值的路径 三十八:二叉树的深度 三十九:平衡二叉树 五十七:二叉树的下一个结点 五十八:对称的二叉树 五十九:按之字顺序打印二叉树 六十:把二叉树

wowenlong的博客 1939

《剑指offer》个人总结

一、赋值运算符函数 返回值类型声明为引用,并返回 *this,只有返回引用才可以连续赋值。 传入参数类型声明为常量引用,避免调用复制构造函数和传入实例。 判断传入参数与当前实例 *this 是否相同。 释放自身已有内存再分配,避免内存泄漏。 在4基础上,为避免释放后分配失败,可以先分配再释放,或者先创建临时实例再交换。 二、实现Singleton模式 public sealed class Singleton { private Singleton() {} private static objec

哈哈哈哈嘿嘿嘿 705

剑指Offer 刷题汇总

剑指Offer(十五):反转链表

limh_hai的博客 308

剑指Offer刷题学习笔记汇总

渣渣鹏的学习记录1、前言2、题目总结数组(13道):字符串(9道):链表(8道):二叉树(15道):栈(3道):回溯法(2道):递归、动态规划(4道):位运算(1道):其他(11道): 1、前言 本系列为渣渣鹏的《剑指Offer》学习笔记。 刷题平台:牛客网 使用语言:Java GitHub笔记地址:     开始刷题的时间太晚了,草草的结束了第一遍学习,把67道题过了一遍,使用的是java语言进...

weixin_43608645的博客 709

剑指offer

第一题,二维数组中的查找:https://blog.youkuaiyun.com/a745233700/article/details/82108738 第二题,替换空格:https://blog.youkuaiyun.com/a745233700/article/details/82730804 第三题,从头到尾打印链表:https://blog.youkuaiyun.com/a745233700/article/details/...

代码学习之路的博客 577

剑指offer刷题笔记目录

本章全文为剑指off刷题笔记和心得 1. 前言: 计划两个月之内刷完,每日刷完后更新超链接 2.笔记目录: 数组(11道): 剑指Offer(一):二维数组中的查找 剑指Offer(六):旋转数组的最小数字 剑指Offer(十三):调整数组顺序使奇数位于偶数前面 剑指Offer(二十八):数组中出现次数超过一半的数字 剑指Offer(三十):连续子数组的最大和 剑指Offer(三十二):把...

weixin_43841801的博客 165
上一篇: 对称的二叉树(二十七)
下一篇: 包含min函数的栈(二十九)
software_Manito
博客等级 码龄8年 6粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值