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

例:

输入: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. IPVS负载均衡

    概念: ipvs (IP Virtual Server) 实现了传输层负载均衡,也就是我们常说的4层LAN交换,作为 Linux 内核的一部分.ipvs运行在主机上,在真实服务器集群前充当负载均衡器. ...

  2. 160CrackMe练手 001

    peid判断无壳,打开输入伪码注册,根据报错od查找字符串 接下来定位到字符串周边代码 0042FA15 |. 8D55 F0 lea edx,[local.4] 0042FA18 |. 8B83 D ...

  3. 【原理、注意点】Quartz的原理和需要注意的地方

    基本介绍和核心接口 1.quartz是完全基于java的可用于进行定时任务调度的开源框架,使用的时候需要引入: <dependency> <groupId>org.quartz ...

  4. 数据库04_SQL简单实践

    笔试实例 以MySQL为例,制作一个简单的表profit如下: T1 分别求1991年以及1992年第一季度的金额总和,效果如下: sql语句实现: SELECT year, SUM(amount) ...

  5. HDU 4576 Robot

    思路 概率dp 既然是求概率,顺推 显然有转移\(dp[i][j]=dp[i-1][j-w]/2+dp[i-1][w]/2\) 然后是环,注意特判一下 环上不要用取模处理循环的情况,会被卡常 代码 # ...

  6. website for .Net Core

    5 Ways to Build Routing in ASP.NET Core Bundling in .NET Core MVC Applications with BundlerMinifier. ...

  7. CommandLineParser命令行解析类

    目的:方便用户在命令行使用过程中减少工作量 以前版本没这个类时,如果要运行带参数的.exe,必须在命令行中输入文件路径以及各种参数,并且输入的参数格式要与代码中的if语句判断内容格式一样,一不小心就输 ...

  8. ImgNoGoodWindow

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using UnityEditor; ...

  9. NOI2017 游记

    成功在NOI2017退役……现在的我已经是一只退役狗了 结果也一直到了退役,我都还不会半平面交,不会单纯形,不会非旋转版Treap…… FWT我也不熟,分治FFT我也只写过一道板子题 但是现在已经退役 ...

  10. 浅谈Linux文件系统

    Linux 与其他类 UNIX 系统一样并不区分文件与目录:目录是记录了其他文件名的文件.使用命令 mkdir 创建目录时,若期望创建的目录的名称与现有的文件名(或目录名)重复,则会创建失败. Lin ...