Spiral Matrix
来源:互联网 发布:怎么做网络营销 知乎 编辑:程序博客网 时间:2024/06/18 16:25
一、问题描述
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]
.
二、思路
这道题目思路也很简单,由于是m*n个元素,所以只要外层循环中数组中元素小于等于总元素个数即可。内部有四个循环,分别是从左到右、从上到下、从右到左和从下到上,每进行完一个循环都要判断元素书否达到上限m*n,执行完4个循环后需要将i加一。
三、代码
class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int> vec; if (matrix.empty()) return {}; int m = matrix.size(); int n = matrix[0].size(); int i = 0, sum = m * n,x,y; while(vec.size() <= sum){ x = i; for(y = i; y < n -i; ++y) vec.push_back(matrix[x][y]); if(vec.size() == sum) break; y = n - i - 1; for(x = i + 1; x < m - i; ++x) vec.push_back(matrix[x][y]); if(vec.size() == sum) break; x = m - 1 - i; for(y = n - 2 - i; y >= i; --y) vec.push_back(matrix[x][y]); if(vec.size() == sum) break; y = i; for(x = m - 2 - i; x > i;--x) vec.push_back(matrix[x][y]); if(vec.size() == sum) break; ++i; } return vec; }};
0 0
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- Spiral Matrix
- TP中config定义常量,在action中调用
- 华为内部如何实施微服务架构?基本就靠这5大原则
- 关于项目开发的一些想法
- MyEclipse项目里面出现红叉的部分案例分析和解决方法
- 【GLSL教程】(六)逐顶点的光照
- Spiral Matrix
- 函数指针--成员函数(静态,非静态)&普通函数
- SQLiteOpenHelper类
- java设计模式之简单工厂模式
- angular使用bootstrap方法手动启动
- iOS--内存分析工具
- mysql嵌套语句查询
- 让UITableView支持长按拖动排序(Swift)
- Class#getResource与ClassLoader#getResource分析