54. Spiral Matrix
来源:互联网 发布:网络即时通讯工具 编辑:程序博客网 时间:2024/05/18 09:35
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
For example,
Given the following matrix:
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]
You should return [1,2,3,6,9,8,7,4,5]
.
分析:
这题后面自己都不知道怎么做出来的,分别设置了行和列的头哨兵和尾哨兵。后面就晕了,稀里糊涂做出来的。
代码:
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> v1;
int m=matrix.size();
if(m==0) return v1;
int n=matrix[0].size();
int la=0,lb=m,lc=0,ld=n;
bool index=true;
int i=0,j=0;
while(1)
{
index=true;
while((la<=i&&i<lb)&&j<ld)
{
v1.push_back(matrix[i][j++]);
index=false;
}
i++;j--; ++la;
while(i<lb &&(lc<=j&&j<ld) )
{
v1.push_back(matrix[i++][j]);
index=false;
}
--i;--j; --ld;
while(j>=lc && (la<=i&&i<lb))
{
v1.push_back(matrix[i][j--]);
index=false;
}
--i;++j;--lb;
while(i>=la && (lc<=j&&j<ld))
{
v1.push_back(matrix[i--][j]);
index=false;
}
++lc;++i;++j;
if(index) break;
}
return v1;
}
};
- 54. Spiral Matrix && 59. Spiral Matrix II
- 59. Spiral Matrix II && 54. Spiral Matrix
- LeetCode 54. Spiral Matrix
- [LeetCode]54.Spiral Matrix
- LeetCode --- 54. Spiral Matrix
- [Leetcode] 54. Spiral Matrix
- [leetcode] 54.Spiral Matrix
- 54. Spiral Matrix
- Leetcode-54.Spiral Matrix
- **LeetCode 54. Spiral Matrix
- Leetcode 54. Spiral Matrix
- [leetcode] 54. Spiral Matrix
- 54. Spiral Matrix
- leetcode 54. Spiral Matrix
- 54. Spiral Matrix LeetCode
- 54. Spiral Matrix
- 54. Spiral Matrix
- leetcode 54. Spiral Matrix
- c++第3次作业
- 《算法导论》学习摘要chapter-7——快速排序
- Apache James邮件服务器介绍及配置发送外网邮件
- NKOI 1016 小胖办证
- ggplot2-分面(facet) 一页多图
- 54. Spiral Matrix
- 【GoogleCodeJam2016A】【暴力】Counting Sheep x的倍数从小向大增加直到出现0~9所有数的最小倍增终点
- 机房重构——退卡
- MySQL 高可用:mysql+proxy主从读写分离
- CSS3学习之选择器篇
- AJAX跨域调用相关知识-CORS和JSONP
- 利用顺序栈计算后缀表达式(逆波兰表达式)
- 一个通讯录 完成增删查找
- 我看过的好书推荐