题意:  

  从1开始产生连续的n2个数字,以螺旋的方式填满一个n*n的数组。

思路:

  由于是填满一个矩阵,那么只需要每次都填一圈即可。应该注意特殊情况。

  迭代:

 class Solution {
public:
vector<vector<int> > generateMatrix(int n)
{
vector<vector<int> > ans(n,vector<int>(n));
int cnt=, i=;
while()
{
if(cnt==n*n) break;
for(int j=i; j<n-i; j++) ans[i][j]=++cnt;
for(int j=i+; j<n-i; j++) ans[j][n-i-]=++cnt;
for(int j=n-i-; j>=i; j--)ans[n-i-][j]=++cnt;
for(int j=n-i-; j>i; j--) ans[j][i]=++cnt;
i++;
}
return ans;
}
};

AC代码

  

  递归:  

 class Solution {
public:
vector<vector<int> > ans;
int n;
void generate(int i,int cnt)
{
if(cnt==n*n) return ;
for(int j=i; j<n-i; j++) ans[i][j]=++cnt;
for(int j=i+; j<n-i; j++) ans[j][n-i-]=++cnt;
for(int j=n-i-; j>=i; j--)ans[n-i-][j]=++cnt;
for(int j=n-i-; j>i; j--) ans[j][i]=++cnt;
generate(i+,cnt);
} vector<vector<int> > generateMatrix(int n)
{
ans=vector<vector<int> >(n,vector<int>(n));
this->n=n;
generate(, );
return ans;
}
};

AC代码

LeetCode Spiral Matrix II (技巧)的更多相关文章

  1. LeetCode: Spiral Matrix II 解题报告-三种方法解决旋转矩阵问题

    Spiral Matrix IIGiven an integer n, generate a square matrix filled with elements from 1 to n2 in sp ...

  2. [LeetCode] Spiral Matrix II 螺旋矩阵之二

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...

  3. [Leetcode] spiral matrix ii 螺旋矩阵

    Given an integer n, generate a square matrix filled with elements from 1 to n 2 in spiral order. For ...

  4. [leetcode]Spiral Matrix II @ Python

    原题地址:https://oj.leetcode.com/problems/spiral-matrix-ii/ 题意: Given an integer n, generate a square ma ...

  5. Leetcode Spiral Matrix II

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...

  6. Leetcode 54. Spiral Matrix & 59. Spiral Matrix II

    54. Spiral Matrix [Medium] Description Given a matrix of m x n elements (m rows, n columns), return ...

  7. 【leetcode】Spiral Matrix II

    Spiral Matrix II Given an integer n, generate a square matrix filled with elements from 1 to n2 in s ...

  8. LeetCode:Spiral Matrix I II

    Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the matri ...

  9. leetcode 54. Spiral Matrix 、59. Spiral Matrix II

    54题是把二维数组安卓螺旋的顺序进行打印,59题是把1到n平方的数字按照螺旋的顺序进行放置 54. Spiral Matrix start表示的是每次一圈的开始,每次开始其实就是从(0,0).(1,1 ...

随机推荐

  1. BZOJ1736 [Usaco2005 jan]The Wedding Juicer 婚宴的榨汁机

    从外面一点一点往里面拓展(floodfill),每次找出最小的一个点,计算它对答案的贡献就好了... 找最小的点的话,直接pq就行 /********************************* ...

  2. display:inline-block;如何取消标签之间的距离

    <div style="font-size:0px"> <div style=" display:inline-block; zoom:1;*displ ...

  3. oracle表分区【转】

          摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用. 在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十 ...

  4. FZU 2028 时空门问题

    题目链接:时空门问题 简单bfs,每个格子移动的方式除了上下左右,还有时空门,开始想着用邻接表保存每个点能通过时空门到达的点就ok了.很快的敲出来,很快的WA了.长久的dbug并没有发现error.然 ...

  5. ASP.NET的运行原理与运行机制

    在Asp.net4和4.5中,新增了WebPages Framework,编写页面代码使用了新的Razor语法,代码更加的简洁和符合Web标准,编写方式更接近于PHP和以前的Asp,和使用WebFor ...

  6. 凸多边形的三角剖分(dp好题)

    [题目描述]给定一具有N个顶点(从1到N编号)的凸多边形,每个顶点的权均已知.问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?[输入格式]第一行 顶点数N(N ...

  7. C# 子窗体点击按钮产生的新子窗体放在父窗体里

    情景展示: 父窗体Form1,左边是按钮,右边是panel(放置子窗体) 父窗体点击按钮,在panel显示第一个子窗体AA, AA有个按钮,点击按钮,是第二个子窗体ZZ, 怎样将AA的子窗体ZZ也显示 ...

  8. 5种JavaScript和CSS交互的方法

      分享   分享   分享   分享   分享   随着浏览器不断的升级改进,CSS和JavaScript之间的界限越来越模糊.本来它们是负责着完全不同的功能,但最终,它们都属于网页前端技术,它们需 ...

  9. 【NOIP模拟题】【二分】【倍增】【链表】【树规】

    3 计算几何3.1 题意描述花花对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目:首先,花花会在x 轴正半轴和y 轴正半轴分别挑选n 个点 ...

  10. 【C语言学习】-05 二维数组、字符串数组、多维数组

    ⼆二维数组.字符串数组.多维数组