[leetcode 59] Spiral Matrix II--------数组转圈赋值
来源:互联网 发布:搜索下载 python 实现 编辑:程序博客网 时间:2024/05/22 00:10
Question:
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3
,
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]
题目很清楚,对数组转圈进行初始化,每次开始的点都是对角线上的点,但是需要判断,因为是转圈,所以只要走n/2圈即可。
因为矩阵是n*n,所以起点横坐标与纵坐标相等,一圈四个边,所以走四个遍历即可。注意判断循环中的起始点和结束点,与保存。
代码如下:
<span style="font-size:14px;">class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> res(n,vector<int>(n)); if(n <= 0){ return res; } helper(res,0,n); return res; } void helper(vector<vector<int>>& res,int pos,int n){ if(pos > n/2) return ; int j,i; for(i = pos; i < n-pos; ++i){//上边的行 res[pos][i] = res[pos][i-1] + 1; } --i; for(j = pos + 1; j < n-pos; ++j){//右边的列 res[j][i] = res[j-1][i] + 1; } --j; for(i = i - 1; i >= pos; --i){//下边的行 res[j][i] = res[j][i+1] + 1; } ++i; for(j = j - 1; j > pos; --j){//左边的列 res[j][i] = res[j+1][i] + 1; } helper(res,pos+1,n); }};</span>
0 0
- [leetcode 59] Spiral Matrix II--------数组转圈赋值
- LeetCode 59: Spiral Matrix II
- [leetcode 59] Spiral Matrix II
- [LeetCode 59] Spiral Matrix II
- leetcode || 59、 Spiral Matrix II
- Spiral Matrix II - LeetCode 59
- Leetcode #59 Spiral Matrix II
- leetcode 59: Spiral Matrix II
- Leetcode#59||Spiral Matrix II
- leetcode 59:Spiral Matrix II
- 【LEETCODE】59-Spiral Matrix II
- 【leetcode】【59】Spiral Matrix II
- LeetCode 59 - Spiral Matrix II
- LeetCode 59 Spiral Matrix II
- 【LeetCode-59】Spiral Matrix II
- LeetCode 59 Spiral Matrix II
- Leetcode 59 Spiral Matrix II
- leetcode-59 Spiral Matrix II
- python中的闭包
- 数据结构上机实验(二)
- Android APP性能优化十大方案
- linux目录作用详解(超详细,树状排版)
- MapReduce实现TopK
- [leetcode 59] Spiral Matrix II--------数组转圈赋值
- Linux设备驱动之Ioctl控制
- WebView与js交互注意事项
- 网络流之--最小点权覆盖和最大点权独立集
- Java的一些入门总结
- [noi 2004] 郁闷的出纳员
- C++实验2-标准体重
- STM32系列第15篇--灵活的静态存储控制器FSMC
- Maven学习-Nexus搭建