一、蛇形矩阵的构建,并按行输出

例:

输入:n,

生成n*n的蛇形矩阵

1 2 3

8 9 4

7 6 5

输出:1 2 3 8 9 4 7 6 5

java编码

public static void main(String[] args) {
// TODO Auto-generated method stub Scanner in = new Scanner(System.in);
int n = in.nextInt();
if(n < 0)
return;
if(n == 1){
System.out.println(1);
return;
} int[][] m = new int[n][n];
//定义4个变量,分别记录当前行和列的上下限
int i1 = 0, j1 = 0, i2 = n - 1, j2 = n - 1;
int i = 0, j = 0;
int begin = 1;
//4个for循环,遍历蛇形矩阵
while(i1 <= i2 && j1 <= j2){ for(; j <= j2; ++j){//one row
m[i][j] = begin;
begin++;
}
j--;
i++;
i1++; for(; i <= i2; ++i){//one column
m[i][j] = begin;
begin++;
}
j2--;
j--;
i--; for(; j >= j1; --j){//one row
m[i][j] = begin;
begin++;
}
i2--;
j++;
i--; for(; i >= i1; --i){//one column
m[i][j] = begin;
begin++;
}
j1++;
j++;
i++;
} //按行输出 蛇形矩阵
for(i = 0; i < n; ++i)
for(j = 0; j < n; ++j)
System.out.println(m[i][j] + " ");
}

二、已知蛇形矩阵m,顺时针顺序输出

例:

矩阵m

1   2   3   4

12 13 14  5

11 16 15  6

10 9   8   7

输出:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

public static void main(String[] args) {
// TODO Auto-generated method stub int[][] m = {{1,2,3,4},{12,13,14,5},{11,16,15,6},{10,9,8,7}};
int n = m.length;
int c = m[0].length;
if(n == 1){
for(int a = 0; a < m[0].length; ++a)
System.out.print(m[0][a] + " ");
}
if(c == 1){
for(int a = 0; a < m.length; ++a)
System.out.print(m[a][0] + " ");
} //定义4个指针,记录行和列的上下限
int i1 = 0, j1 = 0, i2 = n - 1,j2 = c - 1;
int i = 0, j = 0;
while(i1 <= i2 && j1 <= j2){//one row
for(; j <= j2; ++j)
System.out.print(m[i][j] + " ");
i++;
j--;
i1++;
for(; i <= i2; ++i)//one column
System.out.print(m[i][j] + " ");
i--;
j--;
j2--;
for(; j >= j1; --j)//one row
System.out.print(m[i][j] + " ");
i--;
j++;
i2--;
for(; i >= i1; --i)//one column
System.out.print(m[i][j] + " ");
i++;
j++;
j1++;
} }

Java编码 蛇形矩阵的构建与遍历输出的更多相关文章

  1. 【JAVA-JDT-AST】Java抽象语法树的构建、遍历及转成dot格式(附Github源码)

    Background: 最近为了重现tree-based clone detection的论文:L. Jiang, G. Misherghi, Z. Su, and S. Glondu. Deckar ...

  2. Java使用foreach语句对数组成员遍历输出

    /** * 本程序使用foreach语句对数组成员进行遍历输出 * @author Lei * @version 2018-7-23 */ public class ForeachDemo { pub ...

  3. Java实现蛇形矩阵

    public class Solution { //下x++ 左y-- 上x-- 右y++ public void prints(int n) { int[][] mp = new int[n][n] ...

  4. java递归实现文件夹文件的遍历输出

    学习java后对一个面试小题(今年年初在团结湖面试的一个题目) 的习题的编写. ''给你一个文件,判断这个文件是否是目录,是目录则输入当前目录文件的个数和路径,''' /** * @author li ...

  5. Java类的调用(实现数组排序和遍历输出)

    两个类文件: Test1.java /** *同一个src下的两个类,主类在这里,调用另一个文件里的Public类 */ import java.lang.*; public class Test1 ...

  6. js实现蛇形矩阵

    参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我 ...

  7. 【面试】输出"蛇形"矩阵

    一.题目描述 腾讯实习在线笔试的一道题目. 根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下.输入n,输出(n * n)阶矩阵,满足由外到内依次增大. 如: 输入 ...

  8. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序

    面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...

  9. 【JAVA编码专题】总结

    第一部分:编码基础 为什么需要编码:用计算机看得懂的语言(二进制数)表示各种各样的字符. 一.基本概念 ASCII.Unicode.big5.GBK等为字符集,它们只定义了这个字符集内有哪些字符,以及 ...

随机推荐

  1. 关于#ifdef #ifndef

    https://www.cnblogs.com/agnily/p/5848768.html 1.先看#ifdef的用法: #define KEY1_PA0 #ifdef KEY1_PA0 ------ ...

  2. Asp.net 之 window 操作命令

    命令:cmd  打开执行窗口 命令:inetmgr.打开iis管理器 命令:dcomcnfg 打开组件服务 命令:regedit   打开注册表

  3. [java变量] - 字符串数组转long型数组

    //定义字符串 String str = "1,3,6,9,4,2,1,6"; //截取字符串 String[] strArr = str.split(",") ...

  4. Oracle spatial、openlayers、geoserver开发地理信息系统总结

    感谢开源,使用OpenLayers+Geoserver的地理信息系统开发很简单,完全可以套用开发MIS系统的经验,我这里总结为三个步骤: 1.数据准备 2.数据发布 3.数据展现 我将按照这个思路来介 ...

  5. 【Oracle】【问题】

    1. java.sql.SQLException: 对只转发结果集的无效操作: last 参考:https://www.cnblogs.com/gaoyuchuanIT/articles/411888 ...

  6. JAVA读取CSV文件到MySQL数据库中

    maven项目pom配置: <dependency> <groupId>net.sourceforge.javacsv</groupId> <artifact ...

  7. 完美解决百度网盘、浏览器下载限速问题proxyee-down(附带win破解版云盘)

    win版破解云盘 下载: <PanDownload> 使用文档: <PanDownload使用> Mac方法 限速.限速! 平时下载东西限速倒无所谓,遇到急一点的.盯着80km ...

  8. 两个DIV并排显示

    今天做的一个项目,需要做3个div,一个是总框(Div1),另外两个是子框,按比例填满div1,我设置好两个div的width和height,发现效果是两个子div上下显示,如图所示: 要想将两个DI ...

  9. 从flask视角理解angular(二)Blueprint VS Component

    Component类似flask app下面的每个blueprint. import 'rxjs/add/operator/switchMap'; import { Component, OnInit ...

  10. QT文件(夹)操作---QFile、QDir、QFileInfo、QTextStream和QDataStream异同

    1.1    文件和目录 QFile.QBuffer和QTcpSocket可支持读写设备,用open函数打开,用write或putChar函数写入.用read和readLine或readAll进行读取 ...