leetcode笔记:Spiral Matrix
来源:互联网 发布:网络犯罪调查2分集剧情 编辑:程序博客网 时间:2024/06/07 02:29
一. 题目描述
Given a matrix ofmn elements (mrows, 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的矩阵,从外围一层一层的打印出矩阵中的元素内容。解题的方法有多种,以下采用的方法是,使用四个数字分别记录上下左右四个边界的位置(beginX,endX,beginY,endY),不断循环以收窄这些边界,最终当两个边界重叠时,结束循环。
同时,当循环完成后,即得到所求数组。
三. 示例代码
class Solution {public: vector<int> spiralOrder(vector<vector<int> >& matrix) { vector<int> result; if (matrix.empty()) return result; int beginX = 0, endX = matrix[0].size() - 1; int beginY = 0, endY = matrix.size() - 1; while (1) { // 从左到右 for (int i = beginX; i <= endX; ++i) result.push_back(matrix[beginY][i]); if (++beginY > endY) break; // 从上到下 for (int i = beginY; i <= endY; ++i) result.push_back(matrix[i][endX]); if (beginX > --endX) break; // 从右到左 for (int i = endX; i >= beginX; --i) result.push_back(matrix[endY][i]); if (beginY > --endY) break; // 从下到上 for (int i = endY; i >= beginY; --i) result.push_back(matrix[i][beginX]); if (++beginX > endX) break; } return result; }};
1 0
- leetcode笔记:Spiral Matrix
- 【LeetCode】Spiral Matrix解题笔记
- [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
- c语言学习笔记之结构体和枚举
- 野人学Android第二弹——AutoCompleteTextView自动搜索数据库
- VS2010+Opencv+SIFT
- 《python爬虫实战》:模拟登陆
- C语言总结
- leetcode笔记:Spiral Matrix
- [CUDA]CUDA C并行编程
- 慕课网 java jsp
- 本来已经拥有
- LeetCode Game of Life(位操作)
- Android仿微信界面--使用viewpager实现(慕课网笔记)
- OpenCV 5种图像滤波辨析:方框、均值、高斯、中值、双边
- 椭圆曲线
- 30个Oracle语句优化规则详解