LeetCode[Array]: Spiral Matrix II
来源:互联网 发布:js 在div写代码怎么写 编辑:程序博客网 时间:2024/05/14 04:49
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 ]
]
这个题目跟LeetCode[Array]: Spiral Matrix不同的是:这个题目并不适合用递归,因为vector<vector<int> >
不好递归生成。
可以按照其迭代思路来做,不过这里需要注意的一个技术问题是vector<vector<int> > matrix
的初始化,一开始我是按照这个方法进行初始化的:
vector<vector<int> > matrix(n); for (int i = 0; i < n; ++i) { vector<int> row(n, 0); matrix[i] = row; }
后来发现C++允许这样完成vector的初始化:vector<vector<int> > matrix(n, vector<int> (n, 0));
我的C++代码实现如下:
vector<vector<int> > generateMatrix(int n) { vector<vector<int> > matrix(n, vector<int> (n, 0)); int beginRow = 0, endRow = n - 1, beginCol = 0, endCol = n - 1; int element = 1; while (beginRow <= endRow && beginCol <= endCol) { for (int j = beginCol; j <= endCol; ++j) matrix[beginRow][j] = (element++); if (++beginRow > endRow) break; for (int i = beginRow; i <= endRow; ++i) matrix[i][endCol] = (element++); if (--endCol < beginCol) break; for (int j = endCol; j >= beginCol; --j) matrix[endRow][j] = (element++); if (--endRow < beginRow) break; for (int i = endRow; i >= beginRow; --i) matrix[i][beginCol] = (element++); if (++beginCol > endCol) break; } return matrix;}
0 0
- LeetCode[Array]: Spiral Matrix II
- LeetCode-59-Spiral Matrix II(Array)-Medium
- LeetCode刷题【Array】 Spiral Matrix II
- leetcode.array--59. Spiral Matrix II
- LeetCode[Array]: Spiral Matrix
- LeetCode: Spiral Matrix II
- LeetCode Spiral Matrix II
- [Leetcode] Spiral Matrix II
- LeetCode : Spiral Matrix II
- [LeetCode] Spiral Matrix II
- [LeetCode]Spiral Matrix II
- [leetcode]Spiral Matrix II
- LeetCode-Spiral Matrix II
- [leetcode] Spiral Matrix II
- LeetCode - Spiral Matrix II
- Leetcode: Spiral Matrix II
- 【LeetCode】Spiral Matrix II
- Leetcode Spiral Matrix II
- 漫谈程序员系列:一张图道尽程序员的出路
- Win7蓝牙耳机怎么连接电脑
- ubuntu14.04 安装 cups-pdf虚拟打印机
- android APK应用安装过程以及默认安装路径
- 斐波那契数列的计算
- LeetCode[Array]: Spiral Matrix II
- OpenJudge/Poj 1936 All in All
- OpenJudge 2979 陪审团的人选 / Poj 1015 Jury Compromise
- php-5.x.x-Win32.zip的组织 .
- OpenJudge/Poj 2000 Gold Coins
- 第十四周oj项目三杨辉三角
- 第十五周项目2-程序阅读(对指针的理解1)
- 安卓项目出现红色感叹号的解决方案
- OpenJudge 2795 金银岛