博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer系列-T20顺时针打印矩阵
阅读量:4285 次
发布时间:2019-05-27

本文共 1285 字,大约阅读时间需要 4 分钟。

        本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。

import java.util.ArrayList;/** * @author xhl *	顺时针打印矩阵 *	题目描述     输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,     如果输入如下矩阵: 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 */public class offerT20 {	/**	 * @param args	 */	/*通过观察发现每一圈开始的元素行号和列号相同,定为start,通过控制start,控制有几个圈*/	public ArrayList
printMatrix(int [][] matrix) { if(matrix==null){ return null; } int start=0; ArrayList
list=new ArrayList
(); //圈的个数控制:最里面的圈满足start<<0x1
<<0x1
list){ int endx=matrix.length-1-start; int endy=matrix[0].length-1-start; //第一层 for(int i=start;i<=endy;i++){ list.add(matrix[start][i]); } //第二层 for(int i=start+1;i<=endx;i++){ list.add(matrix[i][endy]); } //第三层,要判断是否为单行,单行就不需要第3层了 if(start
=start;i--){ list.add(matrix[endx][i]); } } //第四层,要判断是否为单列,单行就不需要第4层了 if(start
start;i--){ list.add(matrix[i][start]); } } } public static void main(String[] args) { // TODO Auto-generated method stub offerT20 o = new offerT20(); int[][] matrix={ {1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; ArrayList
list=new ArrayList
(); list=o.printMatrix(matrix); System.out.println(list); }}

转载地址:http://cipgi.baihongyu.com/

你可能感兴趣的文章
java/AJAX/JSON/XML/JQUERY
查看>>
iOS加载控制器的三种方式/loadNibName与initwithNibName的区别
查看>>
java/tomcat /http协议
查看>>
java/severelet
查看>>
iOS编译问题的N种可能
查看>>
java/session/cookie/jsp(一)
查看>>
java/jsp/cookie/session/EL\context和request的生命周期(二)
查看>>
java/jsp/page/include/talib/javaBean、BeanUtils
查看>>
java/JSTL/EL函数/标签
查看>>
java/MySql
查看>>
java/jdbc数据库操作、事务处理、批处理、分页查询、元数据、
查看>>
java/事务与连接池
查看>>
iOS应用跳转到appstore更新和评价
查看>>
iOS MBProgressHUD的基本用法
查看>>
UI--位图和矢量图,色彩,
查看>>
PHP入门概述
查看>>
PHP配置和基础知识
查看>>
PHP配置加强二
查看>>
PHP 基础一
查看>>
iOS 输出指定位数
查看>>