常见面试算法之旋转打印矩阵
2015-12-24 14:33
393 查看
/** * 面试常用题(一) * 顺时针旋转矩阵 * @author Administrator * */ public class Chapter01_rotateArray { public static void rotate(int[][] matrix) { int tR = 0; int tC = 0; int dR = matrix.length - 1; int dC = matrix[0].length - 1; while (tR < dR) { rotateEdge(matrix, tR++, tC++, dR--, dC--); } } public static void rotateEdge(int[][] m, int tR, int tC, int dR, int dC) { int times = dC - tC; // times就是总共需要替换的次数 int tmp = 0; for (int i = 0; i != times; i++) { // 一次循环就是一组占据调整 tmp = m[tC + i]; m [tC + i] = m[dR - i][tC]; m[dR - i][tC] = m[dR][dC - i]; m[dR][dC - i] = m[tR + i][dC]; m[tR + i][dC] = tmp; } } public static void printMatrix(int[][] matrix) { for (int i = 0; i != matrix.length; i++) { for (int j = 0; j != matrix[0].length; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(); } } public static void main(String[] args) { int[][] matrix = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } }; printMatrix(matrix); rotate(matrix); System.out.println("========="); printMatrix(matrix); rotate(matrix); System.out.println("========="); printMatrix(matrix); rotate(matrix); System.out.println("========="); printMatrix(matrix); } } 相关文章推荐
- SSh三大框架常考面试题
- 安卓面试题绝密宝典
- 安卓面试题绝密宝典
- 安卓面试题绝密宝典
- pyhton10min系列之程序员的浪漫-足迹生成器,有视频教程
- OC面试中,Block常出现的三个问题
- 谈谈面试与面试题
- 今天碰到一道比较有趣的面试题,大家来探讨一下。
- 面试时算法题的解答思路
- 答与微博前端教主在吃饭时讨论到的一道"微软面试题"
- 面试题4 将一个char数组中的所有空格替换成%20
- 神级码农的7项特征---是啥?
- 神级码农的7项特征---是啥?
- 常见面试算法之转圈打印矩阵
- 115个Java面试题及回答
- 笔试面试题总结(三)--- 软件开发
- 数据库面试题 Java 程序员 SQL 深入解析(一)
- 06.(java基础)面试题--03 abstract的用法,以及abstract和interface的异同
- 黑马程序员--对ibatis框架的理解和…
- 黑马程序员---对JPA的理解与回顾总…