博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Spiral Matrix II 螺旋矩阵之二
阅读量:6814 次
发布时间:2019-06-26

本文共 1128 字,大约阅读时间需要 3 分钟。

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 ]]

此题跟之前那道 本质上没什么区别,就相当于个类似逆运算的过程,这道题是要按螺旋的顺序来填数,由于给定矩形是个正方形,我们计算环数时用n / 2来计算,若n为奇数时,此时最中间的那个点没有被算在环数里,所以最后需要单独赋值,还是下标转换问题是难点,参考之前 的讲解来转换下标吧,代码如下:

class Solution {public:    vector
> generateMatrix(int n) { vector
> res(n, vector
(n, 1)); int val = 1, p = n; for (int i = 0; i < n / 2; ++i, p -= 2) { for (int col = i; col < i + p; ++col) res[i][col] = val++; for (int row = i + 1; row < i + p; ++row) res[row][i + p - 1] = val++; for (int col = i + p - 2; col >= i; --col) res[i + p - 1][col] = val++; for (int row = i + p - 2; row > i; --row) res[row][i] = val++; } if (n % 2 != 0) res[n / 2][n / 2] = val; return res; }};

本文转自博客园Grandyang的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
动态访问DetailsView内的控件
查看>>
[珠玑之椟]位向量/位图的定义和应用
查看>>
数据对齐
查看>>
linux设置 让oracle10g自启动
查看>>
用JQuery给图片添加鼠标移入移出事件
查看>>
ALTER TABLE & ALTER TYPES
查看>>
Hadoop-调优剖析
查看>>
Mac前端抓包小工具Charles4.0下载
查看>>
用AHP层次分析法挑选最佳结婚对象
查看>>
Subversion安装手记
查看>>
Linux 获取设备树源文件(DTS)里描述的资源【转】
查看>>
Effective C++ 阅读笔记(二)public继承与继承中的函数覆盖
查看>>
什么是UV?
查看>>
Stringbuffer与Stringbuilder源码学习和对比
查看>>
Centos 学习大纲
查看>>
解读固态磁盘性能发展之现状
查看>>
CFO职能扩张 CIO将面临更大数据压力
查看>>
区块链之路该怎么走?
查看>>
博科助力澳大利亚的基因组研究机构应对大数据增长
查看>>
SDN趋势回顾:2016年是软件定义WAN元年
查看>>