spiral matrix
2015-10-16 01:02
190 查看
螺旋遍历!!
这道题,之前在一家公司面试见过,当时,依稀记得是使用的递归思想。leetcode上再见该题:参考了一位大神的博客的代码:
这道题,之前在一家公司面试见过,当时,依稀记得是使用的递归思想。leetcode上再见该题:参考了一位大神的博客的代码:
class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int> res; if(matrix.empty()) return res; int a=matrix[0].size(),b=matrix.size(); int circle=a>b?(b+1)/2:(a+1)/2;//圈的个数,并注意考虑到最后可能存在单行或单列的情况 for(int i=0;i<circle;i++) { //顺时针打印4条边 for(int j=i;j<i+a;j++) { res.push_back(matrix[i][j]); } for(int k=i+1;k<i+b;k++) { res.push_back(matrix[k][i+a-1]); } if(1==a||1==b) break; for(int j=i+a-2;j>=i;j--) { res.push_back(matrix[i+b-1][j]); } for(int k=i+b-2;k>i;k--)//注意边界,不要写成了i+b-1 { res.push_back(matrix[k][i]); } a-=2; b-=2; } return res; } };
相关文章推荐
- 初学C语言第一个难点--if作业题的两种思维解法
- 前端项目技术规划
- CentOS遇到Qt编译问题的解决方案(error: cannot find -lGL)
- [数据挖掘课程笔记]人工神经网络(ANN)
- 给label添加点击事件
- 练习10.9-3
- javascript中的值传递和引用传递
- 无法为目标平台“Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider”创建扩展管理器
- 简介:代理模式、代码块存放路径
- 海思hi3516C平台音频输入/输出调试过程
- 定制Android系统开发之一——提供接口的方式
- 桥接模式
- 选择结构的注意点
- iOS开发——UI进阶篇(十九)UISearchBar控件简介
- 使用定时器发送Action
- 基于Linux 平台的libpcap源代码分析(四)
- android 15 activity跳转
- Codevs 2287 火车站
- Android_Android系统服务—Vibrator(振动器)
- Git 本地版本控制