Spiral Matrix
来源:互联网 发布:淘宝 买药 编辑:程序博客网 时间:2024/05/18 02:39
注意细节。
class Solution {public: vector<int> spiralOrder(vector<vector<int> > &matrix) { vector<int> result; int row = matrix.size(); if(row == 0) return result; int col = matrix[0].size(); int startX = 0; int startY = 0; while(row > 0 && col > 0) { for(int i=0; i<col; i++) result.push_back(matrix[startX][startY+i]); for(int i=1; i<row-1; i++) result.push_back(matrix[startX+i][startY+col-1]); if(row-1 != 0) { for(int i=col-1; i>=0; i--) result.push_back(matrix[startX+row-1][startY+i]); } if(col-1 != 0) { for(int i=row-2; i>=1; i--) result.push_back(matrix[startX+i][startY]); } row -= 2; col -= 2; startX += 1; startY += 1; } return result; }};
Spiral Matrix II
class Solution {public: vector<vector<int> > generateMatrix(int n) { vector<vector<int>> result(n, vector<int>(n)); if(n == 0) return result; int startX = 0; int startY = 0; int val = 1; while(n > 0) { for(int i=0; i<n; i++) result[startX][startY+i] = val++; for(int i=1; i<n-1; i++) result[startX+i][startY+n-1] = val++; if(n > 1) { for(int i=n-1; i>=0; i--) result[startX+n-1][startY+i] = val++; for(int i=n-2; i>=1; i--) result[startX+i][startY] = val++; } n -= 2; startX += 1; startY += 1; } return result; }};
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
- 数据结构-【链表】单向链表的逆置和双向循环链表
- javascript原生移动云编程3 - 比web还简单的页面UI布局
- Unity 编译顺序及原理
- UVA10714
- Shell常识--校验和、核实以及加密--总结自《Linux Shell 脚本攻略》
- Spiral Matrix
- [Android View] QuickReturn (自动隐藏header/footer view)
- poj 2726 Holiday Hotel (排序&&单调栈)
- Openstack中创建虚拟机不能够ping通虚拟路由端口
- poj 3268 Silver Cow Party
- N的阶乘 有多少个末尾0
- 操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 程序员的人生也需要有高人点化
- 数据结构-【栈】的链式存储和顺序存储