顺序打印矩阵(Java实现)

顺时针打印矩阵 - Java实现 本文介绍了如何使用Java实现顺时针打印矩阵的算法。通过定义边界变量和按照特定顺序遍历矩阵,我们可以轻松地解决这个问题。我们可以定义四个变量来表示边界,即上边界(top)、下边界(bottom)、左边界(left)、右边界(right)。在这篇文章中,我们将探讨如何使用Java语言以顺时针的方式打印矩阵。我们将提供一个简单的算法,并通过代码示例来解释其工作原理。给定一个m x n的矩阵,按照顺时针的顺序返回矩阵中的所有元素。使用以上算法和代码,对于给定矩阵。,我们可以得到正确的打印结果。 阅读详情

1.题目

在这里插入图片描述

2.解法

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        ArrayList<Integer> arr = new ArrayList<>();
       if (matrix == null || matrix[0].length == 0) return arr;
        int r1 = 0;
        int  r2 = matrix.length - 1;
        int c1 = 0;
        int c2 = matrix[0].length - 1;
        
        // 当到最后一个数的时候
        while(r1 <= r2 && c1 <= c2) {
            for(int c = c1; c <= c2; c++) arr.add(matrix[r1][c]);
            for(int r = r1 + 1; r <= r2; r++) arr.add(matrix[r][c2]);
            
            // 避免上面一行、一列和下面所做的重复
            if (r1 < r2 && c1 < c2) {
                for(int c = c2 - 1; c >= c1; c--) arr.add(matrix[r2][c]);
                for(int r = r2 - 1 ; r > r1; r--) arr.add(matrix[r][c1]);
            }
            r1++;
            r2--;
            c1++;
            c2--;
        }
        return arr;  
    }
}

时间复杂度O(n), 空间复杂度为O(n)

3.总结

和螺旋矩阵是同一道题添加链接描述

java实现顺时针打印矩阵 主要为大家详细介绍了java实现顺时针打印矩阵的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

相关推荐

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

【Java】打印矩阵的几种方法

1、使用两个增强for循环遍历;2、使用两个增强for循环遍历;3、使用一个增强for循环和toString方法

TechnicalXiaobai的博客 2594

线上专利申请(超详细)| 签名确认

在【法人登录】页面点击【证书登录】按钮,弹出证书登录提示框,点击【确 认】按钮,进入到输入证书密码页面,点击【取消】按钮,取消本次操作。企业在提交申请时,需要增加签名,如使用企业账户点击提交,会弹出“法人、代理机构不能签名,请使用经办人签名”,这个时候就需要换个账号了。在需要签名时,将专利官网的登录方式点击法人登录,选择扫码登录,使用移动端经办人账户的扫一扫功能扫描登录。登录完成后,再点击签名,使用移动端扫一扫功能,扫描签名,输入证书号,确认签名,并提交。最后,祝大家的申请都成功!

weixin_62112323的博客 9114

【Java】剑指offer(29)顺时针打印矩阵

2.在打印一圈时,单行或者单列情况只需要在从右往左打印和从下往上打印时判断是否会出现重复打印(即后面两个for循环)。每次打印矩阵的左上角的横纵坐标相同,即为start,而其余三个角的坐标都与行列数以及start有关,因此只需要for循环即可实现打印。当然,其实只要针对start进行循环判断, start*2的值小于行数和列数时才需要继续打印,这样,通过这个条件,可以用循环来打印每次的最外圈矩阵。3.打印矩阵的圈数与其列数或者行数的一半有关。多行多列,单行多列,多行单列,一个数的矩阵,空矩阵,null。

程序员徐师兄的博客 464

FPGA SPI驱动ADC避坑指南:以ADC128S022为例,详解时序设计与代码调试

本文以ADC128S022为例,详细解析FPGA通过SPI驱动ADC的时序设计与代码调试中的常见问题。从时钟分频计算、SPI模式选择到状态机实现,提供避坑指南和实战技巧,帮助工程师解决数据采集系统中的时序匹配难题。特别针对FPGA与ADC通信中的微妙差异,给出精确的Verilog代码示例和ModelSim仿真验证方法。

weixin_42522374的博客 461

Localizing LabVIEW Application to Different Languages

本文探讨了LabVIEW应用程序的多语言本地化实现方案。文章首先分析了LabVIEW对多语言的支持现状,指出其默认仅支持ANSI编码,对Unicode支持有限,且仅适配中英法德日韩六种语言。然后重点介绍了JKISimpleLocalization工具包的使用方法,该工具能导出/导入JSON词典文件,实现界面语言的实时切换。文章还结合实际工程案例,分析了该方案的局限性:部分控件不可翻译、切换速度较慢(33个界面需50秒)、小语种支持不足等。最后提供了完整的应用流程和工具包附件,包括词典文件转换工具和工程案例。

2301_80383260的博客 1410

顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 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] 解题思路:这题其实没有太设计到算法的东西,只需要按照顺时针顺序走一遍矩阵模拟下这个过程就可以了 首先定义二维数组的四个边界:up , d

jiyu12138的博客 218

Starlink第三代终端和第二代终端的差异性有哪些?

starlink第三代终端和第二代终端的额差异

chen2jiang3的博客 2932

顺时针打印矩阵(图文详解,代码详细注释)

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则打印出数字:1 2 3 4 8 12 16 15

吾尝终日而思矣,不如须臾之所学也 4564

【数据集】中国2003年至2022年全天空每日气温数据集

中国2003年至2022年全天空每日气温数据集

WW、forever的博客 604

基于STM32F103C8T6的智能蓝牙手环系统设计与实现

摘要:本文设计并实现了一款基于STM32F103C8T6单片机的智能蓝牙手环系统。该系统集成了ADXL345加速度计、DS18B20温度传感器、plusesennor心率模块和BT06蓝牙模块,实现了心率(±2bpm)、体温(±0.5℃)、步数(±3%)等健康数据的实时监测与显示。通过OLED屏提供人机交互界面,支持蓝牙APP远程控制,具备自动步数清零、异常提醒等功能。测试表明系统各项功能均达到设计要求,响应时间0.1-0.5秒,心率检测准确率98%,体温检测准确率99%,功耗50mA(工作)/10mA(待

3254968421的博客 208

17 顺时针打印矩阵: Java实现顺时针打印矩阵。即输入一个矩阵,按照从外向里逆时针的顺序打印出每一个数字

转载来源:https://blog.youkuaiyun.com/qq_40409115/article/details/80503624 逆时针打印矩阵,输入一个矩阵,按照从外向里逆时针的顺序打印出每一个数字。 如 输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 首先我们观察 4 × 4的...

皮卡丘的博客 360

【HALCON工业视觉应用探索】02. C# + Halcon铸件毛刺机器人打磨引导:点云处理从实验室到工业现场的全流程落地

摘要:铸件毛刺的自动化打磨是机械制造领域的重要难题,其随机性(高度0.1-3mm)和复杂工况导致人工打磨效率低(3分钟/件)、工伤率高。本文基于Halcon 24.11与.NET 6,构建了一套点云处理方案:通过线激光扫描仪获取三维点云,经预处理、毛刺检测、路径规划三大模块,引导机器人完成打磨。虚拟实验测试显示,对高度>1mm的毛刺检出率达100%,定位误差±0.08mm,但工业现场受油污、粉尘影响,性能降至检出率68-75%、处理时间>45秒。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1129

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

题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 创建一个四边形,每次遍历完四条边后都向内收缩。 值得注意的是:当四边形上下边重合时,会造成该行数据重复遍历,因而在第三...

qq_35222441的博客 467

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

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

Java实现逆时针打印矩阵。即输入一个矩阵,按照从外向里逆时针的顺序打印出每一个数字。

逆时针打印矩阵,输入一个矩阵,按照从外向里逆时针的顺序打印出每一个数字。如输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16输出:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 ...

qq_40409115的博客 2291

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java从键盘输入矩阵_本文实例为大家分享了java实现顺时针打印矩阵的具体代码,供大家参考,具体内容如下题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,...

本文实例为大家分享了java实现顺时针打印矩阵的具体代码,供大家参考,具体内容如下题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.1 2 3 45 6 ...

weixin_35554273的博客 275

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

import java.util.ArrayList; /** * 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 * 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. * * @author pomay * */ pu

pomay的博客 7151

输入一个矩阵 将这个矩阵顺时针以顺时针的顺序依次打印 java实现

/** 输入一个矩阵 将这个矩阵顺时针以顺时针的顺序依次打印 1 2 3 4 5 6 ——&amp;gt;1 2 3 6 9 8 7 4 5 7 8 9 @author Administrator */ public class JuZhen { public static void main(String[] args) { //测试数据 int [][]nums={{1,2,3},{4,5,6}...

qq_40445661的博客 287

回旋矩阵打印 java_java实现转圈打印矩阵算法

本文实例为大家分享了java实现转圈打印矩阵的具体代码,供大家参考,具体内容如下给定一个整形矩阵Matrix,请按照顺时针方向转圈的方式,输入(打印)元素值。例如:1 2 3 45 6 7 89 10 11 1213 14 15 16输出结果为:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10要求:额外空间复杂度为O(1)JAVA代码如下:package com.bea...

weixin_39736547的博客 258

回形取数(矩阵) Java 举一反三

回形取数(矩阵)Java 举一反三 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入...

Hackergu的博客 690

顺时针打印矩阵(Java实现)

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 解题思路 自己动手画几个例子,可以看出可以把问题划分为每次打印一个圈,每个圈的起始坐标为[0,0],[1,1],[2,...

melwx的博客 1168

leetcode54顺时针打印矩阵

leetcode54顺时针打印矩阵 题目链接顺时针打印矩阵 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 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] 限制: 0 <= matrix.length <= 100

JingleLiA的博客 229

47.剑指Offer之顺时针打印矩阵

目录1题目描述:2.解题思路3.编程实现(Java): 1题目描述:   输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 2.解题思路   由于是按照从外到内的顺序依次打印,所以可以把矩阵想象成若干个圈,用一个循环来打印矩阵,每次打印矩阵中的一圈。而对于每一圈的打印,很自然便可以想到遵循

Edmundshi的博客 229

[剑指offer]-顺时针打印矩阵

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路:把矩阵按一个一个圈从外到内打印,设圈的开头元素为(start,start),右下角元素为(endX,endY)...

oayoat blog 157

剑指offer_【19】顺时针打印矩阵

1.题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 2.解题思路 打印分为四步:循环的次数即打印的圈速,即 rows > start...

qiulig 123
上一篇: 树的子结构(Java实现)
下一篇: 堆排序 (heapSort)(Java实现)
念殊15
博客等级 码龄8年 17粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值