二维数组对角线打印
来源:互联网 发布:站长工具 端口测试 编辑:程序博客网 时间:2024/05/21 21:42
美团招聘CRM后端Java工程师的题目:
http://www.iteye.com/topic/1134016
其中的题目要求如下:
二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4:
4*4二维数组
- { 1 2 3 4 }
- { 5 6 7 8 }
- { 9 10 11 12 }
- {13 14 15 16 }
打印顺序
- 4
- 3 8
- 2 7 12
- 1 6 11 16
- 5 10 15
- 9 14
- 13
要求半个小时内写出可完整运行的代码。
由于本人算法也不太好,找出其中的大概规律如下,以(i,j)作为坐标轴打印结果:
(0,3)(0,2)(1,3)(0,1)(1,2)(2,3)(0,0)(1,1)(2,2)(3,3)(1,0)(2,1)(3,2)(2,0)(3,1)(3,0)
于是大致分析出其中的规律,写出以下算法程序:
package com.clamaa.algorithm.simple.interview;/** * @author clamaa * @date 14-6-6. */public class MeituanTitle { private static final int[][] DATA = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}; public static void main(String[] args) { int n = DATA.length; int iStart = 0; int jStart = n - 1; while (iStart != n) { for (int i = iStart, j = jStart; i <= n - 1 && j <= n - 1; i++, j++) { System.out.print(DATA[i][j]); System.out.print(" "); } if (jStart > 0) { jStart--; } else { iStart++; } System.out.println(); } }}
第一层循环中,设置矩阵输出的起始坐标,起始坐标的基本规律是,列index如果不为0,下一行中列index--;列index为0,下一行中行index++。
第二层循环中,对于起始的坐标,在没有到达最后一列时,坐标的行列index均++。
运行后结果打印出来的结果符合预期,不知道是否超出了30分钟
4 3 8 2 7 12 1 6 11 16 5 10 15 9 14 13
0 0
- 二维数组对角线打印
- c++-二维数组打印对角线打印
- 沿对角线打印数组(任意二维数组)
- 对角线输出二维数组
- 二维数组对角线的和
- 沿对角线方向打印数组
- 二维数组(N*N),沿对角线方向,从右上角打印到左下角
- 二维数组(N*N),沿对角线方向,从右上角打印到左下角
- 对角线打印二维数组----美团2016研发工程师编程题(二)
- 主对角线打印二维数组---美团点评2016研发工程师编程题(二)
- 每日AC -- 主对角线打印二维数组---美团点评2016研发工程师编程题(二)
- 二维数组(矩阵)对角线输出
- 求二维数组对角线的和
- 二维数组排列对角线求和-C描述
- 二维数组(矩阵)对角线输出
- 二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4:
- (2)面试 --- 在元素的装载数量明确的时候HashMap的大小应该如何选择 || 二维数组打印对角线
- 打印二维数组
- String.format(String format, Object… args)总结
- 在中国经常有砖家说的低俗话“苗子”
- 微信长连接转短连接+谷歌zxing 生成二维码
- 最详细的 Linux 服务器性能参数指标
- java面试题的字符串逆序输出
- 二维数组对角线打印
- apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件或目录执行权限的设置方法
- eclipse插件开发中资源释放问题
- PHP将长文章分页
- hibernate操作oracle中文查询条件乱码解决方法
- eclipse更新站点(update site)的建立
- 错误:“Cannot load JDBC driver class 'com.mysql.jdbc.Driver”的解决方法
- 2.Django入门:从零开始-快速安装指南
- Oracle 查询当天、当周、当月和当季度的所有记录