leetcode@ [54/59] Spiral Matrix & Spiral Matrix II
2015-11-17 12:48
405 查看
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
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].
class Solution { public: bool check(int n, vector<vector<bool> >& vis, int x, int y) { if(x<0 || x>=n || y<0 || y>=n || vis[x][y]) return false; return true; } vector<vector<int>> generateMatrix(int n) { vector<vector<int> > res; res.resize(0); if(n == 0) return res; res.resize(n); for(int i=0;i<res.size();++i) res[i].resize(n); vector<vector<bool> > vis(n, vector<bool>(n, false)); int dir[4][2] = {{0,1}, {1,0}, {0,-1}, {-1,0}}; int sx = 0, sy = 0, __dir = 0, tot = n * n, cnt = 1; while(cnt <= tot) { res[sx][sy] = cnt; vis[sx][sy] = true; ++cnt; if(!check(n, vis, sx + dir[__dir][0], sy + dir[__dir][1])) __dir = (__dir + 1) % 4; sx = sx + dir[__dir][0]; sy = sy + dir[__dir][1]; } return res; } };View Code
相关文章推荐
- PhpStorm配置SVN
- IOS Crash统计分析工具Crashlytics
- 如何将AS400的文件转换为DEL格式的文件
- Qt动画框架的学习
- CP &SCP linux远程传输
- Alpha阶段产品功能说明
- PhpStorm无法使用Terminal解决方法
- U 盘使用 exfat 格式注意事项
- 一些有趣的图形界面---Java画图
- jquery判断页面是否滑动到最底部
- 庆祝我第一个博客开通
- Export/Import/load 实用程序文件格式
- 发送邮件时候遇到了这样的一个错误!Sending the email to the following server failed : smtp.163.com:25
- Android学习导航
- 安装Virtual Box增强功能 - Ubuntu
- PHP开发环境配置
- 飞信模拟登录
- ZFS文件系统 Solaris 10
- 各类排序法的算法复杂度(时间复杂度)
- VS2013编译ffmpeg