[leetcode] 54. Spiral Matrix 解题报告
2016-01-02 11:11
309 查看
题目链接:https://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:
You should return
思路:设置两个表示行进方向的向量dx,dy,还有四个边界值,然后在其到达边界的时候改变各个变量的值。
代码如下:
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].
思路:设置两个表示行进方向的向量dx,dy,还有四个边界值,然后在其到达边界的时候改变各个变量的值。
代码如下:
class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { if(matrix.size() == 0) return {}; int m=matrix.size(), n=matrix[0].size(); vector<int> result; int left=0, right=n-1, top=0, bot=m-1, x =0, y =0, dx=1, dy=0; for(int i = 0; i < m*n; i++) { result.push_back(matrix[y][x]); x += dx, y += dy; if(dx == 1 && x>right) top++, x--, y++, dx=0, dy=1; else if(dx ==-1 && x<left) bot--, x++, y--, dx=0, dy=-1; else if(dy == 1 && y>bot) right--, x--, y--, dx=-1, dy=0; else if(dy == -1&& y<top) left++, x++, y++, dx=1, dy=0; } return result; } };
相关文章推荐
- Find Peak Element
- (Frontend Newbie)Web三要素(三)
- android <xliff:g id="x" />标签说明
- php str_pad() 用法
- 从输入网址到显示网页的全过程分析
- Android 跨进程通信
- php str_pad();
- 按字典序输出数组的全排列
- R语言读数据做图
- linux下bashrc与profile的区别
- blink接收器
- 卡方检验
- 零基础入门学习Python(25):魔法方法(5)定制序列和迭代器
- AlertView动画
- blink接收器
- tshark过滤并保存包特定字段
- 快来嗨!《笑傲江湖ol》圣诞嘉韶华狂欢开端!--国民网游戏
- java成员方法
- 停用两个模块并发现一个奇怪的注释问题
- Android:Sqlitedatabase学习小结