[算法学习]顺时针打印矩阵
2016-02-18 13:59
381 查看
问题描述: 顺时针打印矩阵
例如:
{
{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列n,行n列1,行1列1。考虑到这几个后其实就不难了。
附:源码地址
例如:
{
{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列n,行n列1,行1列1。考虑到这几个后其实就不难了。
参考代码如下
[code]/** * 顺时针打印矩阵 * * @param matrix */ public static void clockwisePrintMatrix(int[][] matrix) { // 1.test代码 if (matrix == null) { System.err.println("输入矩阵有误"); return; } int hight = matrix.length; if (hight == 0) { System.err.println("输入矩阵有误"); return; } int width = matrix[0].length; for (int i = 1; i < hight; i++) { if (matrix[i].length != width) { System.err.println("输入矩阵有误"); return; } } if (width == 0) { System.err.println("输入矩阵有误"); return; } // 2.核心代码 int loopNum = width > hight ? (hight + 1) / 2 : (width + 1) / 2; printMatrix(matrix, 0, 0, width, hight); for (int i = 1; i < loopNum; i++) { printMatrix(matrix, i, i, width - 2, hight - 2); } System.out.println(); } /** * 顺时针打印一圈矩阵 * * @param matrix * @param x * @param y * @param xLen * @param yLen */ private static void printMatrix(int[][] matrix, int x, int y, int xLen, int yLen) { for (int i = 0; i < xLen; i++) { System.out.print(matrix[y][x + i] + ","); } for (int i = 1; i < yLen; i++) { System.out.print(matrix[y + i][x + xLen-1] + ","); } for (int i = 2; i <=xLen&&yLen!=1; i++) { System.out.print(matrix[y + yLen-1][x + xLen - i] + ","); } for (int i = 2; i <yLen&&xLen!=1; i++) { System.out.print(matrix[y + yLen - i][x] + ","); } }
附:源码地址
相关文章推荐
- Spring学习笔记(18)----使用Spring配置文件实现事务管理
- 【笔记】linux下设置mysql允许远程连接
- Ios开发之定位CLLocationManager
- Android Studio目录结构
- 测试文章,学习博客写法中
- android 获取view 位置的几种方式
- 用canvas 实现个图片三角化(LOW POLY)效果
- MongoDB从不同角度的分析(顶)
- Java生成验证码
- [算法学习]数组的旋转
- Django 下static的配置
- 前端程序员:月薪5K到5万,我干了啥
- JS身份证真实性校验(一)
- HDOJ-2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- Vmware vCenter Server Appliance (VCSA6.0)安装
- [算法学习]二维数组的查找
- HihoCoder 1033:交错和
- Fragment中嵌套PagerSlidingTabStrip+ViewPager,ViewPager中嵌套Fragmentc出现的问题
- jquery 拓展函数集
- 编写 Window 服务程序