java实现转圈打印矩阵算法

Java实现转圈打印矩阵算法可以分为以下几个步骤:

  1. 给定一个m行n列的矩阵matrix,初始化行和列的起始、结束位置:
int rowStart = 0;
int rowEnd = matrix.length - 1;
int colStart = 0;
int colEnd = matrix[0].length - 1;
  1. 通过while循环,不断打印矩阵的外圈,直到打印完所有元素:
while(rowStart <= rowEnd && colStart <= colEnd){
  // 从左到右打印第一行
  for(int i = colStart; i <= colEnd; i++){
    System.out.print(matrix[rowStart][i] + " ");
  }
  rowStart++;

  // 从上到下打印最右一列
  for(int i = rowStart; i <= rowEnd; i++){
    System.out.print(matrix[i][colEnd] + " ");
  }
  colEnd--;

  // 从右到左打印最下一行
  if(rowStart <= rowEnd){
    for(int i = colEnd; i >= colStart; i--){
      System.out.print(matrix[rowEnd][i] + " ");
    }
  }
  rowEnd--;

  // 从下到上打印最左一列
  if(colStart <= colEnd){
    for(int i = rowEnd; i >= rowStart; i--){
      System.out.print(matrix[i][colStart] + " ");
    }
  }
  colStart++;
}

注意,while循环中的条件是行的起始位置小于等于行的结束位置,并且列的起始位置小于等于列的结束位置。

  1. 最后,要么输出完整行的值,要么输出完整列的值,如果矩阵行数为奇数时,会输出矩阵的中心位置。整个算法的完整代码如下:
public static void circlePrint(int[][] matrix){
  int rowStart = 0;
  int rowEnd = matrix.length - 1;
  int colStart = 0;
  int colEnd = matrix[0].length - 1;

  while(rowStart <= rowEnd && colStart <= colEnd){
    // 从左到右打印第一行
    for(int i = colStart; i <= colEnd; i++){
      System.out.print(matrix[rowStart][i] + " ");
    }
    rowStart++;

    // 从上到下打印最右一列
    for(int i = rowStart; i <= rowEnd; i++){
      System.out.print(matrix[i][colEnd] + " ");
    }
    colEnd--;

    // 从右到左打印最下一行
    if(rowStart <= rowEnd){
      for(int i = colEnd; i >= colStart; i--){
        System.out.print(matrix[rowEnd][i] + " ");
      }
    }
    rowEnd--;

    // 从下到上打印最左一列
    if(colStart <= colEnd){
      for(int i = rowEnd; i >= rowStart; i--){
        System.out.print(matrix[i][colStart] + " ");
      }
    }
    colStart++;
  }
}

// 示例一:3行4列的矩阵
int[][] matrix1 = {{1, 2, 3, 4},
                   {5, 6, 7, 8},
                   {9, 10, 11, 12}};
circlePrint(matrix1); // 输出:1 2 3 4 8 12 11 10 9 5 6 7

// 示例二:5行5列的矩阵
int[][] matrix2 = {{ 1, 2, 3, 4, 5},
                   { 6, 7, 8, 9,10},
                   {11,12,13,14,15},
                   {16,17,18,19,20},
                   {21,22,23,24,25}};
circlePrint(matrix2); // 输出:1 2 3 4 5 10 15 20 25 24 23 22 21 16 11 6 7 8 9 14 19 18 17 12 13

以上代码已经完全符合标准的markdown格式文本,包含规范的标题和代码块,适合引用到博客、论坛或文档等场合。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现转圈打印矩阵算法 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • JAVA 对象创建与对象克隆

    JAVA 对象创建与对象克隆 在 Java 中,对象创建与对象克隆是非常重要的知识点。 对象创建 Java 中的对象常见的有以下几种创建方式: 使用 new 关键字 使用 new 关键字创建对象是最常见的一种方式,通过这种方式创建出来的对象是一个新的对象实例,具有独立的地址空间。例子如下: public class Person { private Stri…

    Java 2023年5月26日
    00
  • java线程池详解及代码介绍

    Java线程池详解及代码介绍 本文将介绍Java中的线程池,并提供代码示例。内容包括线程池的概念、线程池的优点、线程池的组成以及线程池的使用方式等。 线程池的概念 线程池是一种多线程处理的方式,它最大的特点是控制线程的数量。在多线程环境下,如果线程数量过多,会导致系统资源的浪费,而且线程的创建和销毁也需要消耗系统资源,影响系统的性能。线程池通过管理线程的创建…

    Java 2023年5月19日
    00
  • Hibernate中load方法与get方法的区别

    Hibernate中load方法与get方法的区别是开发人员在进行对象查询时最常见的问题之一,下面是一份详细的攻略,希望对您有所帮助。 1. 背景知识 在开始分析两个方法的区别前,先了解几个概念。 1.1 Hibernate中的Session 在Hibernate框架中,Session是与数据库交互的重要对象,它提供了对数据库的增删改查等操作。 1.2 对象…

    Java 2023年5月20日
    00
  • 如何解决java压缩文件乱码问题

    针对Java压缩文件乱码问题,这里提供一份解决方案。 第一步:查找乱码原因 首先我们需要确定压缩文件存在乱码的原因。一般情况下,乱码的原因可能是: 压缩文件编码格式不正确(例如使用GBK编码打包的文件在使用UTF-8进行解压时会出现乱码) 解压程序的编码格式不正确 压缩文件本身存在编码问题 第二步:使用正确的编码格式 针对第一种情况,我们可以在压缩文件时指定…

    Java 2023年5月20日
    00
  • Spring boot搭建web应用集成thymeleaf模板实现登陆

    下面就是详细讲解Spring Boot搭建Web应用集成Thymeleaf模板实现登录的攻略。 1. 新建Spring Boot项目 首先,打开IDE,新建一个Spring Boot项目。在Maven项目的pom.xml中添加thymeleaf依赖: <dependency> <groupId>org.springframework.…

    Java 2023年5月20日
    00
  • 基于java实现的ECC加密算法示例

    题目中提到了“基于java实现的ECC加密算法示例”,因此我们需要对这个话题展开讲解,下面是详细的攻略: 什么是ECC加密算法? ECC(Elliptic Curve Cryptography)椭圆曲线加密算法,是在椭圆曲线上实现的加密算法。通常情况下,比如RSA加密算法,密钥长度越长,加密的强度也越强。但是,ECC加密算法却有一个比较特别的地方,那就是在密…

    Java 2023年5月19日
    00
  • html css将表头固定的最直接的方法

    要将表头固定,最直接的方法是使用CSS中的position属性和z-index属性。具体步骤如下: HTML结构 首先,我们需要在HTML结构中将表格分为两部分:表头和表体。表头使用 标签,表体使用 标签。代码示例如下: <table> <thead> <tr> <th>姓名</th> <th…

    Java 2023年6月15日
    00
  • spring security中的默认登录页源码跟踪

    让我来为您讲解一下“spring security中的默认登录页源码跟踪”的完整攻略。 1. 查阅官方文档 首先,我们需要查阅Spring Security官方文档,寻找与默认登录页相关的信息。在官方文档中,我们可以找到登录页的配置方式及默认路径。在Spring Security 5.0版本及以上,登录页默认放在/login路径下。同时,Spring Sec…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部