当前位置: 首页 > news >正文

营销类型网站怎么建设百度品牌广告是什么

营销类型网站怎么建设,百度品牌广告是什么,如何搭建系统平台,太原做网站直通车一、题目简介 题目链接:59. 螺旋矩阵 II - 力扣(LeetCode) 给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例1: 输入:n …

一、题目简介

题目链接:59. 螺旋矩阵 II - 力扣(LeetCode) 

给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

示例1: 

输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]

示例 2:

输入:n = 4 ,输出:[[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]

示例 3: 

输入:n = 1
输出:[[1]]

提示:

  • 1 <= n <= 20

 螺旋矩阵填充元素处理思路:
先定义一个新矩阵Matrix,该矩阵中的所有元素初始化为0。
然后,我们可以设置一个count变量,初始化为1,使得count自增来表示矩阵中每个位置要填的内容。

现在,要如何将count填写在矩阵中的相应位置上?根据螺旋矩阵的特点,即从外圈到最中间的数据呈现从1到n*n分布,方向为顺时针,我们可以先填充最外圈的元素,然后再填充次外圈的元素,依此类推,直到最后一圈(n为偶数)或最后一个元素(n为奇数)填充完毕。

每次在对某一圈上的元素进行填写时,都会涉及到四条不同的边,那么我们肯定是希望在填充这四条边的时候能尽量对称的填写,即每条边填写元素相等,例如:对于3×3矩阵,我们在填写最外圈时希望每条边填写2个元素,因为这样保证了每条边都会填写两个元素,确保对称填写。

填写过程即横向由左向右填写,即填写Matrix[0][0]以及Matrix[0][1];纵向由上向下,即填写Matrix[0][2]以及Matrix[1][2];横向由右向左填写,即填写Matrix[2][2]以及Matrix[2][1];纵向由下向上,即填写Matrix[0][2]以及Matrix[0][1];如下图所示:

在每圈填写的过程中,需要填写四次,我们可以使用for循环来对每条边进行固定元素数量的填写。

这样填写的话,当n为偶数, n/2 圈即可填写完成,比如:4×4矩阵两圈即可填写完成;当n为奇数,n/2圈填写到矩阵中,剩余一个中心元素单独处理,例如:3×3矩阵需要一个外圈加上一个中心元素单独处理。

代码:

#include<vector>
#include<iostream>
class solution{public:std::vector<std::vector<int>> generateMatrix(int n) {std::vector<std::vector<int>> Matrix(n,std::vector<int>(n,0)); // 定义一个全新 n×n 矩阵,所有元素均为 0int loop=n/2; // loop表示填满 Matrix 所需的圈数int offset = 1; // offset 控制每一圈里每一条边遍历的长度int count = 1; // 给每个位置赋值int i,j;int startx=0,starty=0; // 定义每循环一个圈的起始位置while(loop){ i = startx;j = starty;// 下面的四个 for 循环表示转一圈// 填充横向(由左到右)for(j;j<n-offset;j++){Matrix[i][j] = count;count++;}// 填充竖向(由上到下)for(i;i<n-offset;i++){Matrix[i][j] = count;count++;}// 填充横向(由右到左)for(;j>starty;j--){Matrix[i][j] = count;count++;}// 填充竖向(由下到上)for(;i>startx;i--){Matrix[i][j] = count;count++;}// 第二圈开始的时候,起始位置要各自加1, 例如:第一圈起始位置是(0, 0),第二圈起始位置是(1, 1)startx++;starty++;loop--; // 每填充一圈,loop自减offset++; // offset 控制每一圈里每一条边遍历的长度}// 如果 n 为奇数,需单独给矩阵最中间的位置赋值if(n%2==1){Matrix[n/2][n/2]=count; // 矩阵中间的位置,例如:n为3, 中间的位置就是(1,1),n为5,中间位置为(2, 2)}return Matrix; // 返回填充好的矩阵}
};int main(){int n=4; // 输入一个正整数solution s1; // 实例化一个对象std::vector<std::vector<int>> matrix = s1.generateMatrix(n);for(int i=0;i<n;i++){for(int j=0;j<n;j++){std::cout<<" "<<matrix[i][j];}}std::cout<<std::endl;}

该题目的讲解:

一入循环深似海 | LeetCode:59.螺旋矩阵II_哔哩哔哩_bilibili

http://www.cadmedia.cn/news/16048.html

相关文章:

  • 娄底企业网站建设公司推广seo是什么意思
  • 网页设计类网站seo关键词优化的技巧和方法
  • 无锡市政府网站建设评估seo是一种利用搜索引擎的
  • 深圳做网站报价百度搜索风云榜手机版
  • 公司注册域名需要哪些条件百度推广seo自学
  • eclipse开发微网站开发保定百度首页优化
  • 政府移动门户网站建设江北关键词优化排名seo
  • 靠谱网站建设公司价格seo关键词排名
  • 郑州好的企业网站建设计算机培训班培训费用
  • 个人网站的建设与管理市场推广计划怎么写
  • 网站建设有关图片站长之家怎么用
  • 深圳找工作用什么招聘网seo教学
  • 黄页引流推广网站软件免费企业网站优化价格
  • 网站开发创业广告代理
  • 网站权重一般有几个等级谷歌浏览器下载安卓版
  • 超变攻速传奇一秒20刀合肥网络公司seo建站
  • flash做ppt的模板下载网站有哪些百度推广开户费用多少
  • 芯港小镇建设管理中心网站做小程序要多少钱
  • 安徽政府网站建设论文职业技术培训
  • 个人制作网站多少钱国际时事新闻2022最新
  • h5制作小程序有哪些芜湖seo
  • 手机信息分类网站制作模板建站优点
  • 注册公司需要钱吗?多少费用搜索引擎优化解释
  • 中国商标自助查询广州seo推广
  • 中小企业网站建设需要注意什么网上推广专员是什么意思
  • 公司官网用什么建站程序软文营销的技巧
  • 找第三方做网站 需要注意网站的推广优化
  • 多媒体设计制作公司北京榆林市网站seo
  • 常用网站开发软件6腾讯中国联通
  • 如何做淘客网站seo搜索排名优化公司