题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.

题目解答

 import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList<Integer> result = new ArrayList<>();
int r1 = 0,r2 = matrix.length-1,c1 = 0,c2 = matrix[0].length-1;//r2是行数,c2是列数
while(r1<=r2 && c1<=c2){
for(int i=c1;i<=c2;i++) result.add(matrix[r1][i]);
for(int i=r1+1;i<=r2;i++) result.add(matrix[i][c2]);
if(r1!=r2){//如果r1=r2,则该矩阵为一个数组
for(int i=c2-1;i>=c1;i--)
result.add(matrix[r2][i]);
}
if(c1!=c2){
for(int i=r2-1;i>r1;i--)
result.add(matrix[i][c1]);
}
r1++;
r2--;
c1++;
c2--;
}
return result;
}
}
 

最新文章

  1. arguments 对象
  2. JavaScript 用法
  3. 网页加载图片问题 插件lazyload
  4. sessionStorage
  5. C# 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配
  6. 找出图像I的代数中心
  7. python爬虫之採集——360联想词W2版本号
  8. 虚拟主机 (Virtual Host)
  9. Pattern()和Matcher() 用法
  10. C. Bits (Codeforces Round #276 (Div. 2) )
  11. Linux释放内存脚本
  12. springboot 热部署 idea版本(转)
  13. Java 高级开发必修知识---反射
  14. (light oj 1319) Monkey Tradition 中国剩余定理(CRT)
  15. Learning Rust - Syntax
  16. 针对负载均衡集群中的session解决方案的总结
  17. MySql与对应的Java的时间类型
  18. bzoj 3252: 攻略 -- 长链剖分+贪心
  19. OPENCV----在APP性能测试中的应用(一)
  20. C# Session操作

热门文章

  1. 手把手带你入门numpy,从此数据处理不再慌【四】
  2. Docker+Selenium+TestNG+Maven+Jenkins环境搭建
  3. [FireDAC][Phys][MSSQL]-310._数据库安装工具_问题需要解决_连载_3
  4. logging模块封装
  5. MVC、MVP、MVVM模型
  6. 05.DRF-Django REST framework 简介
  7. 富文本插件tinymce初始化配置参数说明
  8. JAVA 字节流 与 字符流 的区别
  9. set dict tuple 内置方法
  10. Spring IoC BeanDefinition 的加载和注册