题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.
 
题解:
  初始化一个左上角和一个右下角即可,然后顺时针打印,注意当只有一行和只有一列的时候
  

 class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
int Lx = , Ly = , Rx = matrix.size() - , Ry = matrix[].size() - ;
vector<int>res;
while (Lx <= Rx && Ly <= Ry)
{
if (Lx == Rx)//只有一行
for (int i = Ly; i <= Ry; ++i)
res.push_back(matrix[Lx][i]);
else if(Ly==Ry)//只有一列
for (int i = Lx; i <= Rx; ++i)
res.push_back(matrix[i][Ly]);
else
{
for (int i = Ly; i < Ry; ++i)
res.push_back(matrix[Lx][i]);
for (int i = Lx; i < Rx; ++i)
res.push_back(matrix[i][Ry]);
for (int i = Ry; i > Ly; --i)
res.push_back(matrix[Rx][i]);
for (int i = Rx; i > Lx; --i)
res.push_back(matrix[i][Ly]);
}
++Lx, ++Ly;
--Rx, --Ry;
}
return res;
}
};

最新文章

  1. [Network] HTML、XML和JSON学习汇总
  2. ZeroMQ接口函数之 :zmq_msg_recv - 从一个socket中接受一个消息帧
  3. vi/vim 的使用
  4. 【原】iOS设计模式之:建造者模式Builder Pattern,用于改进初始化参数
  5. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
  6. zk listbox 点击列标题实现排序功能
  7. knockout 学习实例3 html
  8. JavaScript基础(一)
  9. 对数据预处理的一点理解[ZZ]
  10. POJ 2208 已知边四面体六个长度,计算体积
  11. Visual Studio 2015/2017 与ASP.NET CORE 联合创建具有SPA模式的Angular2模板
  12. css学习_cs3s旋转的图片
  13. [Postman]调试和日志(10)
  14. Vue+min-width实现最大两栏布局
  15. hihoCoder 1143 : 骨牌覆盖问题&#183;一(递推,矩阵快速幂)
  16. hibernate update 只更新部分字段的3种方法(转载)
  17. linux ----&gt; centos 网络、tomcat、vi、等等的配置和使用
  18. 2、一、Introduction(入门):1、Application Fundamentals(应用程序基础)
  19. PopupWindow 的常用api封装
  20. ehcache加载配置文件ehcache.xml的源码

热门文章

  1. (转)OpenFire源码学习之十五:插件开发
  2. CSS:CSS 尺寸 (Dimension)
  3. JAVA中HashMap相关知识的总结(一)
  4. node 创建静态web服务器(上)
  5. 深入理解JAVA虚拟机原理之垃圾回收器机制(一)
  6. ArcGis Python常用脚本
  7. Solr6.6环境安装及core的创建(win7环境)
  8. 自动生成web api接口文档
  9. loop find column
  10. 初始化css样式