剑指offer——顺时针打印矩阵
来源:互联网 发布:ug8.0车床编程 编辑:程序博客网 时间:2024/05/16 12:15
import java.util.ArrayList;public class Solution { public static ArrayList<Integer> printMatrix(int [][] matrix) { if(matrix == null) return null; ArrayList<Integer> arrayList = new ArrayList<>(); int up_limit = 0; int down_limit = matrix.length-1; int left_limit = 0; int right_limit = matrix[0].length-1; //保证有数字会继续输出 while (up_limit <= down_limit && left_limit <= right_limit) { //从左到右打印 if(up_limit <= down_limit) { for(int i = left_limit; i <= right_limit; ++i) //System.out.print(matrix[up_limit][i] + " "); arrayList.add(matrix[up_limit][i]); //上边界加1 up_limit = up_limit +1; } //从上到下打印 if(right_limit >= left_limit) { for(int i = up_limit; i <= down_limit; ++i){ // System.out.print(matrix[i][right_limit] + " "); arrayList.add(matrix[i][right_limit]); } //右边界-1 right_limit = right_limit - 1; } //从右到左打印 if(down_limit >= up_limit) { for(int i = right_limit; i >= left_limit; --i) { //System.out.print(matrix[down_limit][i] + " "); arrayList.add(matrix[down_limit][i]); } //下边界-1 down_limit = down_limit - 1; } if(left_limit <= right_limit) { //从下到上打印 for(int i = down_limit; i >= up_limit; --i) { //System.out.print(matrix[i][left_limit] + " "); arrayList.add(matrix[i][left_limit]); } //左边界+1 left_limit = left_limit + 1; } } return arrayList; }}
阅读全文
0 0
- 《剑指offer》——顺时针打印矩阵
- 《剑指offer》——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer—顺时针打印矩阵
- 剑指offer(19)—顺时针打印矩阵
- 剑指offer——面试题20:顺时针打印矩阵
- 剑指Offer——(19)顺时针打印矩阵
- 剑指offer——19.顺时针打印矩阵
- 剑指Offer—19—顺时针打印矩阵
- 剑指offer 面试题20—顺时针打印矩阵
- 【剑指offer】顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- UDT源代码下载链接
- ViewGroup.MarginLayoutParams
- Windows下双Python环境安装
- Kotlin学习笔记(3)- 语法
- mysql数据库常用数据类型
- 剑指offer——顺时针打印矩阵
- Mysql存储引擎
- Android Studio 使用 java 通过 OpenCV4Android 实现 Hello OpenCV
- Retrofit get、post请求用法整理
- 模拟实现string类(c++)
- Linux shell 脚本打印乘法口诀表
- struts的DevMode模式
- 4092:牛仔裤
- 深入理解JVM(六)——类文件结构