剑指offer——29顺时针打印矩阵
2024-10-07 20:50:36
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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;
}
};
最新文章
- [Network] HTML、XML和JSON学习汇总
- ZeroMQ接口函数之 :zmq_msg_recv - 从一个socket中接受一个消息帧
- vi/vim 的使用
- 【原】iOS设计模式之:建造者模式Builder Pattern,用于改进初始化参数
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
- zk listbox 点击列标题实现排序功能
- knockout 学习实例3 html
- JavaScript基础(一)
- 对数据预处理的一点理解[ZZ]
- POJ 2208 已知边四面体六个长度,计算体积
- Visual Studio 2015/2017 与ASP.NET CORE 联合创建具有SPA模式的Angular2模板
- css学习_cs3s旋转的图片
- [Postman]调试和日志(10)
- Vue+min-width实现最大两栏布局
- hihoCoder 1143 : 骨牌覆盖问题&#183;一(递推,矩阵快速幂)
- hibernate update 只更新部分字段的3种方法(转载)
- linux ---->; centos 网络、tomcat、vi、等等的配置和使用
- 2、一、Introduction(入门):1、Application Fundamentals(应用程序基础)
- PopupWindow 的常用api封装
- ehcache加载配置文件ehcache.xml的源码