[Java Code]顺时针输出二维数组
2014-03-28 11:29
246 查看
package com.coding_sloth; /** * 顺时针打印矩阵 * example:有如下矩阵: * 1 2 3 4 5 * 14 15 16 17 6 * 13 20 19 18 7 * 12 11 10 9 8 * 输出结果为:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 * Created by 孔武有力 on 14-3-28. */ public class Clockwise2DArray { public void test() { int[][] array = {{1, 2, 3, 4, 5}, {14, 15, 16, 17, 6}, {13, 20, 19, 18, 7}, {12, 11, 10, 9, 8}}; /* int[][] array = {{1, 2, 3, 4}, {12, 13, 14, 5}, {11, 16, 15, 6}, {10, 9, 8, 7}}; /* int[][] array = {{1, 2, 3}, {8, 9, 4}, {7, 6, 5}}; */ int[] result = clockwise2DArray(array, 4, 5); for(int a : result) { System.out.print(a + " "); } } //M为数组array的行数,N为列数 private int[] clockwise2DArray (int[][] array, int M, int N){ int[] result = new int[M*N]; int count = 1; //圈数 int k = 0; //result[] 下标 while(count <= (min(M, N)+1)/2) { //从左到右横向打印 for (int i = count - 1; i < N - count; i ++) { result[k] = array[count - 1][i]; k ++; } //从上到下纵向打印 for (int i = count - 1; i < M - count; i ++) { result[k] = array[i][N - count]; k++; } //从右到左横向打印 for (int i = N - count; i > count - 1; i --) { result[k] = array[M - count][i]; k++; } //从下到上纵向打印 for (int i = M - count; i > count - 1; i --) { result[k] = array[i][count - 1]; k++; } count ++; } /* 当最后一圈只有一个元素[如3*3数组]时,上述循环不会执行, * 需将最后一个元素插入到数组result中 */ if (k < M*N) { result[k] = array[count - 2][count - 2]; } return result; } private int min(int a, int b) { return (a>b) ? b : a; } }
相关文章推荐
- Java实现顺时针输出螺旋二维数组的方法示例
- 顺时针打印二维数组(螺旋输出数组)
- Java二维数组,将古诗《相思》分别用横版和竖版的形式输出
- java实现二维数组回形输出
- JAVA代码—算法基础:将N*N的矩阵顺时针旋转90度输出元素
- java二维数组求每行最大值,每列最小值,及输出数组主对角线上的元素
- Java中给出一个3X3的二维数组,进行转置后输出
- java数组学习之二:使用二维数组输出杨辉三角
- java实现二维数组回形输出
- JAVA中用Scanner输出二维数组
- c语言:使一个N*N二维数组输出呈顺时针螺旋递增
- 用java实现二维数组的“之”字形输出
- 顺时针输出一个二维数组的内容
- 二维数组的静态定义 即二维数组的输出方法--java
- Java --随意输入N*N矩阵, 顺时针旋转输出
- java数组练习2创建二维数组,并将数组中的内容输出到控制台
- Java 299之输出二维数组中的最大值
- 互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java
- 【程序29】 TestAdd3.java 题目:求一个3*3矩阵对角线元素之和 1.程序分析:利用双重for循环控制输入二维数组, //再将a[i][i]累加后输出。
- java 二维数组的定义 与 二维数组输出的两种方法for each与Arrays.deepToString方法