【美团面试】java实现二维数组逆时针回形遍历
2014-09-18 15:30
1101 查看
思路:(1)
(2)定义一个变量time,记录输出数的个数(初始为0),当所有元素输出结束后,time的值为row*col。此为结束判定条件
(2)定义一个变量time,记录输出数的个数(初始为0),当所有元素输出结束后,time的值为row*col。此为结束判定条件
public static void main(String[] args){ int a[][] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}, {17,18,19,20} }; int time=0; //5行4列,输出顺序为1,2,3,4,8,12,16,20,19,18,17,13,9,5,6,7,11,15,。。 int M=a.length; int N=a[0].length; int j=0; for(int n=0;;n++){ for(j=n;j<N-n;j++){ time++; System.out.println(a [j]); } if(time==M*N) break; for(j=n+1;j<M-n;j++){ time++; System.out.println(a[j][N-n-1]); } if(time==M*N) break; for(j=N-n-2;j>=n;j--){ time++; System.out.println(a[M-n-1][j]); } if(time==M*N) break; for(j=M-n-2;j>=n+1;j--){ time++; System.out.println(a[j] ); } if(time==M*N) break; } }
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- java实现 逆时针打印二维数组
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- java实现二维数组按列遍历
- Java实现带行号层序遍历二叉树的变种问题(使用二维数组保存)
- 第2章 Java编程基础——FAQ2.25 如何实现一维和二维数组的遍历?
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- java语言实现的二叉树的各种操作(包括递归与非递归遍历二叉树,求二叉树的高度,节点总数,叶子节点等)
- JAVA实现二叉树(二叉树的存储、二叉树的遍历)
- Java实现遍历窗体上全部组件
- JAVA实现的一个冒泡程序(面试常考)
- Java二维数组实现简单Map(梁健-原创)
- java语言实现二叉树的前序、中序与后序遍历(递归与非递归)
- 前序,中序,后序遍历Java实现(递归算法)
- JAVA实现二维数组的转置
- 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径
- Java实现遍历指定文件夹
- JAVA语言实现二叉树的层次遍历的非递归算法及递归算法。
- 完全二叉树的JAVA实现(以及非递归遍历方法)