#381 Spiral Matrix II
来源:互联网 发布:高通一键开启写号端口 编辑:程序博客网 时间:2024/06/05 13:36
题目描述:
Given an integer n, generate a square matrix filled with elements from 1 to n^2 in spiral order.
Notice
Example
题目思路:Given n = 3
,
You should return the following matrix:
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]
这题的思路在于不断缩小上下左右的boundary,而不用每次都计算position这么复杂。需要注意的是,循环终止的条件不是转完一圈才退出,一旦检测到count达到了n*n,就可以break。
Mycode(AC = 29ms):
class Solution {public: /** * @param n an integer * @return a square matrix */ vector<vector<int>> generateMatrix(int n) { // Write your code here vector<vector<int>> sp_matrix(n, vector<int>(n, 0)); int count = 1, upper_row = 0, down_row = n - 1, left_col = 0, right_col = n - 1; while (count <= n * n) { // fill in upper row for (int i = left_col; i <= right_col; i++) { sp_matrix[upper_row][i] = count++; } upper_row++; if (count > n * n) break; // fill in right col for (int i = upper_row; i <= down_row; i++) { sp_matrix[i][right_col] = count++; } right_col--; if (count > n * n) break; // fill in down row for (int i = right_col; i >= left_col; i--) { sp_matrix[down_row][i] = count++; } down_row--; if (count > n * n) break; // fill in left col for (int i = down_row; i >= upper_row; i--) { sp_matrix[i][left_col] = count++; } left_col++; } return sp_matrix; }};
0 0
- #381 Spiral Matrix II
- Spiral Matrix && Spiral Matrix II
- LeetCode: Spiral Matrix II
- LeetCode Spiral Matrix II
- [Leetcode] Spiral Matrix II
- LeetCode : Spiral Matrix II
- Spiral Matrix II
- [LeetCode] Spiral Matrix II
- Spiral Matrix II
- Spiral Matrix II
- [LeetCode]Spiral Matrix II
- Spiral Matrix II
- Spiral Matrix I(II)
- Spiral Matrix II
- [leetcode]Spiral Matrix II
- LeetCode-Spiral Matrix II
- [leetcode] Spiral Matrix II
- LeetCode - Spiral Matrix II
- LeetCode | Combinations
- HTTP协议支持的6种请求方式
- Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习
- 线程-实现线程的两种方式
- 【WebService】6.处理Map等CXF无法自动转换的值
- #381 Spiral Matrix II
- 《现代操作系统》读书笔记之进程一
- OC方法和文件编译
- 整数自动转换原则
- 设计模式——单例(Unity3D中的应用)
- 浅析ButterKnife的实现 (二) —— BindResource
- HDU 1338 Game Prediction(田忌赛马)
- ML 工程师需了解的 10 大算法
- 【hibernate】 常见的主键生成策略