59. Spiral Matrix II
来源:互联网 发布:猜数字java 编辑:程序博客网 时间:2024/05/01 23:52
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3,
You should return the following matrix:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
Subscribe to see which companies asked this question
蛇形填数这个题目不管在《算法竞赛入门经典》,还是《剑指OFFER》 都看过。
不过这还是第一次动手去写吧。思路比较清楚,就是要注意循环的时候,容易越界访问。
class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int> > ans (n,vector<int>(n,0)); if(n<1)return ans; int tot=1; int i=0,j=0,k=1; ans[i][j]=k++; while(tot++<n*n){ //这里的j+1是关键,用j<n的话,下一个循环的时候就会约界访问数组 while(j+1<n&&ans[i][j+1]==0)ans[i][++j]=k++; while(i+1<n&&ans[i+1][j]==0)ans[++i][j]=k++; while(j-1>=0&&ans[i][j-1]==0)ans[i][--j]=k++; while(i-1>=0&&ans[i-1][j]==0)ans[--i][j]=k++; } return ans; }};
0 0
- 59.Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- 59. Spiral Matrix II
- eclipse的jni配置
- html学习一
- hadoop、storm和spark的区别、比较
- 面向对象的基本概念
- 第6周项目2 武器友元类
- 59. Spiral Matrix II
- JDBC异常:Before start of result set
- C++中智能指针的设计和使用
- BeanCopier 实现 值传递
- ACM题目分类
- mysql函数大全
- wireshark抓取本机包
- 杭电ACM题目分类
- 数组的全排列