Spiral Matrix II
2015-08-16 18:28
344 查看
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n =
You should return the following matrix:
For example,
Given n =
3,
You should return the following matrix:
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
class Solution { public: vector<vector<int> > generateMatrix(int n) { if(n==0) return vector<vector<int>>(); int startx=0,starty=0,endx=n-1,endy=n-1; vector<int> ivec(n); vector<vector<int>> ovec(n,ivec); int c=n,head=1; while(startx<=endx&&starty<=endy){ ovec[startx][starty]=head; for(int i=starty+1;i<=endy;i++) ovec[startx][i]=ovec[startx][i-1]+1; for(int i=startx+1;i<=endx;i++) ovec[i][endy]=ovec[i-1][endy]+1; for(int i=endy-1;i>=starty;i--) ovec[endx][i]=ovec[endx][i+1]+1; for(int i=endx-1;i>=startx+1;i--) ovec[i][starty]=ovec[i+1][starty]+1; head=head+4*c-4; startx++; starty++; endx--; endy--; c=c-2; } return ovec; } };
相关文章推荐
- Contest 7 1007 Gray code【DP/贪心】
- 明天去云台山....
- 如何手动解析CrashLog
- 不可变字符串 NSString 的基础使用方法
- HDU-5339 Untitled
- linux命令之pstack
- HDFS-3.HDFS架构
- ul宽度自适应让li居中
- 奇异值分解(SVD)
- 手动解析CrashLog之——原理篇
- cocos2dx——lua自动和手动绑定
- C++给文件加密技术如此简单
- Vim - python autocomplete plugin
- Length of Last Word
- 定义常量的三种方法
- HTTP详解-工作原理
- 关于$.Deferred()对象的应用
- GitHub上整理的一些工具,求补充
- 浅谈new与delete
- 关联容器总结