您的位置:首页 > 新闻 > 会展 > 开发公司资质需要什么证书_网页浏览器在哪里_衡阳有实力seo优化_推广网站排名优化seo教程

开发公司资质需要什么证书_网页浏览器在哪里_衡阳有实力seo优化_推广网站排名优化seo教程

2025/2/24 12:46:28 来源:https://blog.csdn.net/a_j58/article/details/145751423  浏览:    关键词:开发公司资质需要什么证书_网页浏览器在哪里_衡阳有实力seo优化_推广网站排名优化seo教程
开发公司资质需要什么证书_网页浏览器在哪里_衡阳有实力seo优化_推广网站排名优化seo教程

题目

思路

这段代码的思路是通过模拟螺旋填充的方式,将从 1 到 n x n 的数字依次填入一个 n x n 的矩阵中。具体来说,使用四个边界变量(top, bottom, left, right)来控制填充的范围,按照从左到右、从上到下、从右到左、从下到上的顺序逐层填充矩阵,每完成一层后收缩边界,直到所有数字都被填入矩阵为止。

这个题目其实与之前的螺旋矩阵非常相似,之前是从已有的数据中读取数据,这个是你自己往矩阵里面加入数据。

原理大致相似。我们先创建一个m:n*n的矩阵,将里面的数据全部初始化为0。

接着顺时针访问矩阵,将k不断地附加到矩阵中的相应位置即可。

代码

class Solution {
public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> m(n,vector<int>(n));int top=0,left=0,right=n-1,bottom=n-1;int k=1;while(left <= right && top <= bottom){for(int column=left;column<=right;column++){m[top][column] = k++;}for(int row=top+1;row<=bottom;row++){m[row][right] = k++;}if(left < right && top < bottom){for(int column=right-1;column>=left;column--){m[bottom][column] = k++;}for(int row=bottom-1;row>top;row--){m[row][left] = k++;}}left++;right--;bottom--;top++;}return m;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com