剑指offer-面试题20-顺时针打印矩阵
来源:互联网 发布:网络销售现货有前途吗 编辑:程序博客网 时间:2024/06/11 23:44
题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次扫印出每一个数字。
题目解析:主要是对行号和列号的控制
//顺时针打印矩阵 public static void printMatrix(int[][] arr) { if (arr == null) { return; } int x = 0, y = 0;//行x列y //一圈一圈的打印 while (x <= (arr.length - 1) / 2 && y < (arr[0].length - 1) / 2) { printCircle(arr, x, y); x++; y++; } } //根据圈的最左上角坐标打印一圈 public static void printCircle(int[][] arr, int x, int y) { int rows = arr.length; int columns = arr[0].length; //输出最上面一行 for (int i = y; i <= columns - y - 1; i++) { System.out.print(arr[x][i] + " "); } //输出圈的最右边一列,这一列可能只有一个数据 if (rows - x - 1 > x) {//rows-x-1是输出行的下一行的行号 for (int i = x + 1; i <= rows - x - 1; i++) { System.out.print(arr[i][columns - y - 1] + " "); } } //输出最下面的一行 if (rows - x - 1 > x && columns - y - 1 > y) { for (int i = columns - y - 2; i >= y; i--) { System.out.print(arr[rows - x - 1][i] + " "); } } if (columns - 1 - y > y && rows - 1 - x > x + 1) { // 因为最左边那一列的第一个和最后一个已经被输出了 for (int i = rows - 1 - x - 1; i >= x + 1; i--) { System.out.print(arr[i][y] + " "); } } }
0 0
- 《剑指offer》面试题:顺时针打印矩阵
- 剑指offer面试题 顺时针打印矩阵
- 剑指offer面试题20顺时针打印矩阵
- [剑指offer][面试题20]顺时针打印矩阵
- 剑指offer 面试题20:顺时针打印矩阵
- 《剑指offer》面试题20顺时针打印矩阵
- 【剑指offer】面试题20:顺时针打印矩阵
- 剑指offer 面试题20 顺时针打印矩阵
- 剑指Offer:面试题20 顺时针打印矩阵
- 《剑指Offer》面试题20:顺时针打印矩阵
- 剑指offer 面试题20—顺时针打印矩阵
- 《剑指Offer》学习笔记--面试题20:顺时针打印矩阵
- 剑指offer--面试题20:顺时针打印矩阵--Java实现
- 【剑指Offer学习】【面试题20 : 顺时针打印矩阵】
- 剑指offer面试题20-顺时针打印矩阵
- 剑指offer-面试题20:顺时针打印矩阵
- 剑指offer之面试题20:顺时针打印矩阵
- 剑指offer之面试题20顺时针打印矩阵
- Python扫描指定目录下(包括子目录)的文件
- 转-iOS利用Platinum库开发DLNA功能
- poj3080——Blue Jeans(字串)
- 公钥加密,私钥解密示例程序(JAVA)
- 从上往下打印二叉树
- 剑指offer-面试题20-顺时针打印矩阵
- 聊一聊Android 6.0的运行时权限
- PAT基础编程 5-20 打印九九口诀表 (15分)
- IBM Aix系统
- sublime 文件路径提示功能(安装方法)
- es6扩展运算符 三个点(...)
- Linux中IIC设备驱动再细读
- Oracl提示“记录被另一个用户锁住” 解决方法
- Dubbo 消费者启动流程