首页 > 其他 > 详细

leetcode 91:spiral-matrix-ii

时间:2020-08-11 14:38:52      阅读:61      评论:0      收藏:0      [点我收藏+]

题目描述

给定一个整数n,将数字1到n2n^2n2按螺旋的顺序填入n×n的矩阵
例如:
给出的n=3,
你应该返回如下矩阵:
[↵ [ 1, 2, 3 ],↵ [ 8, 9, 4 ],↵ [ 7, 6, 5 ]↵]
题目分析:
这个题属于常规题,就是旋转着给数组赋值,需要搞清楚行和列的关系,当转完一圈以后,行和列的处理。

代码如下:
 1 vector<vector<int> > generateMatrix(int n) {
 2         std::vector<std::vector<int>> v;
 3     if (n < 1)
 4         return v;
 5 
 6     for (int i = 0; i < n; i++)
 7     {
 8         std::vector<int> t(n);
 9         v.push_back(t);
10     }
11 
12     int num = 1;
13     int rowStart = 0, rowEnd = n - 1, colStart = 0, colEnd = n - 1;
14     while (num <= n*n)
15     {
16         for (int i = colStart; i <= colEnd; i++)
17         {
18             v[rowStart][i] = num++;
19         }
20         for (int i = rowStart + 1; i <= rowEnd; i++)
21         {
22             v[i][colEnd] = num++;
23         }
24         for (int i = colEnd - 1; i >= colStart; i--)
25         {
26             v[rowEnd][i] = num++;
27         }
28         
29         for (int i = rowEnd - 1; i > rowStart; i--)
30         {
31             v[i][colStart] = num++;
32         }
33         rowStart++;
34         rowEnd--;
35         colStart++;
36         colEnd--;
37     }
38 
39     return v;
40     }

 



leetcode 91:spiral-matrix-ii

原文:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13475051.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!