[leetcode] Spiral Matrix
来源:互联网 发布:mysql function判断 编辑:程序博客网 时间:2024/06/06 06:49
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]
.
参考链接:http://www.cnblogs.com/TenosDoIt/p/3774747.html
思路:
打印螺旋矩阵
逐个环的打印, 对于m *n的矩阵,环的个数是 (min(n,m)+1) / 2。对于每个环顺时针打印四条边。
注意的是:最后一个环可能只包含一行或者一列数据
代码:
class Solution {public: vector<int> spiralOrder(vector<vector<int> > &matrix) { int m=matrix.size(),n; if(m!=0) n=matrix[0].size(); int cycle=m>n?(n+1)/2:(m+1)/2; vector<int> res; int a=n,b=m; for(int i=0;i<cycle;i++,a-=2,b-=2){ for(int column=i;column<i+a;column++){ res.push_back(matrix[i][column]); } for(int row=i+1;row<i+b;row++){ res.push_back(matrix[row][i+a-1]); } if(a==1 || b==1) break; for(int column=i+a-2;column>=i;column--){ res.push_back(matrix[i+b-1][column]); } for(int row=i+b-2;row>i;row--){ res.push_back(matrix[row][i]); } } return res; }};
0 0
- [leetcode]Spiral Matrix&&Spiral Matrix II
- Leetcode:Spiral Matrix与Spiral Matrix II
- LeetCode | Spiral Matrix /Spiral Matrix II
- 【Leetcode】【python】Spiral Matrix/Spiral Matrix II
- LeetCode: Spiral Matrix
- LeetCode: Spiral Matrix II
- LeetCode Spiral Matrix
- LeetCode Spiral Matrix II
- [Leetcode] Spiral Matrix
- [Leetcode] Spiral Matrix II
- LeetCode: Spiral Matrix
- LeetCode : Spiral Matrix II
- [LeetCode] Spiral Matrix II
- [LeetCode] Spiral Matrix
- leetcode 80: Spiral Matrix
- [Leetcode] Spiral Matrix
- [LeetCode]Spiral Matrix
- [LeetCode]Spiral Matrix II
- ASP.NET+JQuery+.Ashx实现+百度Echarts 实现动态柱状图数据图形报表的统计
- 搜索引擎之倒排索引1
- iOS绘图教程
- keil 报错“空间不够”分析
- 残缺,可以造就别样的美丽
- [leetcode] Spiral Matrix
- 【NOIP2013】华容道 最短路优化搜索(spfa)
- 程序启动读取和关闭时保存应用程序设置(QSettings)
- C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
- could not initialize proxy - no Session
- C++中的const引用和非const引用
- 虚函数
- Liferay开发学习(1)
- CSAPP 六个重要实验 lab1