顺时针打印二维数组---执行判断
2016-06-16 14:50
246 查看
将一个二维数组顺时针进行打印,如图所示,
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。
思路:打印分为四步:从左到右,从上到下,从右到左,从下到上。第一步是肯定会执行的,到达列数时开始执行第二步,第二步能够执行的条件终止行号大于起始行号,第三步打印的前提条件是圈内至少有两行两列,也就是说除了要求终止行号大于起始行号之外,还要求终止列号大于起始列号,需要打印第四步的前提条件是至少有三行两列,因此要求终止行号比起始行号至少大 2,同时终止列号大于起始列号。
java代码:
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。
思路:打印分为四步:从左到右,从上到下,从右到左,从下到上。第一步是肯定会执行的,到达列数时开始执行第二步,第二步能够执行的条件终止行号大于起始行号,第三步打印的前提条件是圈内至少有两行两列,也就是说除了要求终止行号大于起始行号之外,还要求终止列号大于起始列号,需要打印第四步的前提条件是至少有三行两列,因此要求终止行号比起始行号至少大 2,同时终止列号大于起始列号。
java代码:
public class shunshizhendayin { private static void meiyiquan(int[][] nums) { if (nums == null) return; int rows = nums.length; int columns = nums[0].length; int start = 0; while (start * 2 < rows && start * 2 < columns) { shunshidayin(nums, start); start++; } } private static void shunshidayin(int[][] a, int start) { int endx = a[0].length - start - 1;// 右边界 int endy = a.length - 1 - start;// 下边界 // 打印最上面的行 for (int i = start; i <= endx; i++) { System.out.print(a[start][i] + "\t"); } // 从上到下打印 if (start < endy) { for (int i = start + 1; i <= endy; i++) { System.out.print(a[i][endx]+ "\t"); } } // 从右向左打印 if (start < endx && start < endy) { for (int i = endx - 1; i >= start; i--) { System.out.print(a[endy][i]+ "\t"); } } // 从下到上打印 if (start < endx && start < endy - 1) { for (int i = endy - 1; i >= start + 1; i--) { System.out.print(a[i][start]+ "\t"); } } } public static void main(String[] args) { int[][] tes = { { 1, 2, 3, }, { 4, 5, 6}, { 7, 8, 9 }, }; meiyiquan(tes); } }
相关文章推荐
- Lua中使用二维数组实例
- C#使用二维数组模拟斗地主
- C#二维数组基本用法实例
- javascript的日期对象、数组对象、二维数组使用说明
- PHP 如何获取二维数组中某个key的集合
- 改写函数实现PHP二维/三维数组转字符串
- java 二维数组矩阵乘法的实现方法
- Swift中定义二维数组的方法及遍历方法示例
- 举例理解C语言二维数组的指针指向问题
- C#和Java中二维数组区别分析
- php去除二维数组的重复项方法
- php对二维数组进行相关操作(排序、转换、去空白等)
- php将一维数组转换为每3个连续值组成的二维数组
- PHP中使用foreach()遍历二维数组的简单实例
- php对二维数组按指定键值key排序示例代码
- PHP按指定键值对二维数组进行排序的方法
- PHP将二维数组某一个字段相同的数组合并起来的方法
- js二维数组定义和初始化的三种方法总结
- C语言中二维数组指针的简要说明
- php实例分享之二维数组排序