[LeetCode] Spiral Matrix
来源:互联网 发布:阿里云 ssh 断开 编辑:程序博客网 时间:2024/04/28 16:57
Given a matrix of m x n elements (m rows, ncolumns), return all elements of the matrix in spiral order.
For example,
Given the following matrix:
You should return [1,2,3,6,9,8,7,4,5].
分析:
一圈一圈遍历,注意最后只剩单行或者单列的情况。
代码如下:
class Solution {public: vector<int> spiralOrder(vector<vector<int> > &matrix) { vector<int> v; if (matrix.empty()) return v; int m = matrix.size(); int n = matrix[0].size(); int up = 0; int down = m - 1; int left = 0; int right = n - 1; while (up < down && left < right) { for (int i = left; i <= right; ++i) { v.push_back(matrix[up][i]); } for (int i = up + 1; i <= down; ++i) { v.push_back(matrix[i][right]); } for (int i = right - 1; i >= left; --i) { v.push_back(matrix[down][i]); } for (int i = down - 1; i >= up + 1; --i) { v.push_back(matrix[i][left]); } up++; down--; left++; right--; } if (down > up && right == left) { for (int i = up; i <= down; ++i) { v.push_back(matrix[i][left]); } } else if (right >= left && up == down) { for (int i = left; i <= right; ++i) { v.push_back(matrix[up][i]); } } return v; }};
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
- 『ANDROID』java中enum的一种用法(by server return code)
- 【LeetCode】Remove Duplicates from Sorted List
- Python IP地址 socket.inet_ntoa unpack/pack
- 看《H.264官方中文版》有感
- android 架构
- [LeetCode] Spiral Matrix
- scanf函数
- Active Movie Control Object控件实现音乐播放器
- HDU 5105 Math Problem
- Android4.4深入浅出之SurfaceFlinger总体结构
- UFLDL Exercise:PCA and Whitening
- 一家不知名的小公司的面经
- MySQL数据库恢复(使用mysqlbinlog命令)
- 设计模式C++学习笔记之一(Strategy策略模式)