java基础(6)数组的操作--打印矩阵
来源:互联网 发布:网络排名推广 编辑:程序博客网 时间:2024/06/05 05:16
题目要求:
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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)打印结果
实际操作:
public static void main(String[] args) { int[][] array={{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}}; int[] newArray=Method(array); //创建方法并调用 for (int i = 0; i < newArray.length; i++) { System.out.print(newArray[i]+" "); } //打印结果 } public static int[] Method(int[][] array) { int minRow=0; int maxRow=array.length-1; int minColumn=0; int maxColumn=array[0].length-1; //确定矩阵的四个角 int[] newArray=new int[(maxColumn+1)*(maxRow+1)]; int num=0; //确定新数组的长度 while (minRow<=maxRow && minColumn<maxColumn) { //给数组限定一个循环条件 for (int i = minColumn; i <= maxColumn; i++) { newArray[num++]=array[minRow][i]; //给数组newArray赋值 if (i==maxColumn) { minRow++; } //当数组array[minRow][i]循环结束后,向下移动进入下一行数组 } if (minRow<=maxRow) { for (int i = minRow; i <= maxRow; i++) { newArray[num++]=array[i][maxColumn]; if (i==maxRow) { maxColumn--; } //当数组array[i][maxColumn]循环结束后,向左移动进入下一列数组 } } if (minColumn<=maxColumn) { for (int i = maxColumn; i >= minColumn; i--) { newArray[num++]=array[maxRow][i]; if (i==minColumn) { maxRow--; } } //当数组array[maxRow][i]循环结束后,向上移动进入下一列数组 } if (minRow<=maxRow) { for (int i = maxRow; i >= minRow; i--) { newArray[num++]=array[i][minColumn]; if (i==minRow) { minColumn++; } } //当数组array[i][minColumn]循环结束后,向右移动进入下一列数组 } } return newArray; //返回newArray值 }}
实际结果
0 0
- java基础(6)数组的操作--打印矩阵
- java基础--数组操作
- Java基础之数组的操作
- 黑马程序员JAVA基础-数组的操作
- JAVA基础学习(四)---数组的操作
- JAVA基础4-数组的操作
- java基础(5) 数组的操作
- Java-基础 数组的常用操作
- opencv(Java)的矩阵创建与基础操作
- numpy矩阵的基础操作
- 学习java中的数组:打印n*n矩阵的螺旋方形和回字形
- 04.java语言基础-数组中的数组(多维数组)-多维数组的操作
- 不用数组打印蛇形矩阵
- 顺时针打印矩阵(数组)
- OpenCV对数组(矩阵)的一些操作
- OpenCV中数组(矩阵)的常用操作
- opencv 对数组(矩阵)的一些操作
- Matlab软件的矩阵和数组操作
- hibernate的many-to-many的示例
- erlang 坑
- Java的反射机制与动态代理学习笔记
- 广州码神信息科技有限公司--培训第一周
- 一只伤痕累累但不断前行且不服输的蜗牛---疯狂的一个半月
- java基础(6)数组的操作--打印矩阵
- Linux Redis安装及使用
- 练习1-9 编写一个将输入复制到输出程序,并将其中连续的多个空格用一个空格代替
- 浅谈Activity,Fragment模块化封装
- 友盟抓取crash Log- 解析IOS崩溃日志
- erlang 启动参数
- erlang throw跳出递归的妙用
- Google Postman插件
- 导航点击变色(防刷新)纯前台代码实现