Leetcode_spiral-matrix
来源:互联网 发布:聊天室程序源码 编辑:程序博客网 时间:2024/05/15 06:28
地址:http://oj.leetcode.com/problems/spiral-matrix/
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>res; if(!matrix.empty()) { int row = matrix.size(), col = matrix[0].size(); int i = 0, j = 0, tmp = 0, endi = row, endj = col; while(i <= endi && j <= endj) { tmp = j; if(tmp >= endj) break; while(tmp<endj) res.push_back(matrix[i][tmp++]); ++i; tmp = i; if(tmp>=endi) break; while(tmp<endi) res.push_back(matrix[tmp++][endj-1]); --endj; tmp = endj-1; if(tmp<j) break; while(tmp>=j) res.push_back(matrix[endi-1][tmp--]); --endi; tmp = endi-1; if(tmp<i) break; while(tmp>=i) res.push_back(matrix[tmp--][j]); ++j; } } return res; }};
//second trail
class Solution {public: vector<int> spiralOrder(vector<vector<int> > &matrix) { vector<int> ans; if(matrix.empty()) return ans; int row = matrix.size(), col = matrix[0].size(); int ibegin = 0, iend = row-1, jbegin = 0, jend = col-1; while(ibegin<=iend && jbegin <= jend) { for(int j = jbegin; j<=jend; ++j) ans.push_back(matrix[ibegin][j]); ++ibegin; for(int i = ibegin; i<=iend; ++i) ans.push_back(matrix[i][jend]); --jend; if(ibegin > iend || jbegin > jend) break; for(int j = jend; j>=jbegin; --j) ans.push_back(matrix[iend][j]); --iend; for(int i = iend; i>=ibegin; --i) ans.push_back(matrix[i][jbegin]); ++jbegin; } return ans; }};
0 0
- Leetcode_spiral-matrix
- leetcode_Spiral Matrix
- Leetcode_spiral-matrix-ii
- leetcode_Spiral Matrix II
- 《Matrix》
- Matrix
- Matrix
- Matrix
- Matrix
- Matrix
- Matrix
- mAtrix
- Matrix
- matrix
- Matrix
- Matrix
- Matrix
- Matrix
- 第五周项目四-指向学生类的指针
- ASP 28言
- 猪圈密码
- String... args简介
- C#去掉数组中重复的字符串
- Leetcode_spiral-matrix
- replace vs substitute
- C语言实现控制台背景闪烁
- 程序员面试宝典第七章总结——指针与引用
- 第五周作业的抄写部分
- jqgrid加载数据
- SpringMVC和Struts2比较
- Java 时间转换
- OC简单知识的练习