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

59. 螺旋矩阵 II

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

在这里插入图片描述

思路:模拟,核心是最边的元素位置在当前循环不赋值,留给下一轮子循环,使得循环有规律。 n*n的矩阵,总共大循环有n/2次,其中n为奇数那么中心的做特判,单独赋值

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int> > res(n,vector<int>(n,0));
        int sx=0;
        int sy=0;
        int loop=n/2;

        //让出来一个位置,使得有规律
        int offset=1;
        int count=1;
        int mid=n/2;

        while(loop--)
        {
            int i=sx;
            int j=sy;
            //第一行填充
            for(j;j<n-offset;j++)
            {
                res[i][j]=count++;
            }

            for(i;i<n-offset;i++)
            {
                res[i][j]=count++;
            }

            for(j;j>sx;j--)
            {
                res[i][j]=count++;
            }

            for(i;i>sy;i--)
            {
                res[i][j]=count++;
            }

            offset++;
            sx++;
            sy++;
        }
        if(n%2==1)
        {
            res[mid][mid]=count;
        }

        return res;
    }

};

相关文章:

  • 深度洞察:特种设备作业考试的核心要点与备考策略
  • 蓝桥杯 修剪灌木
  • opencv初步学习——图像处理3
  • LeetCode BFS层序遍历树
  • 工作记录 2017-02-04
  • 【css酷炫效果】纯CSS实现照片堆叠效果
  • 2025年通信安全员考试题库及答案
  • xxl-job 执行器端服务器的简单搭建
  • OneCyber 平台
  • 杨校老师课堂之编程入门与软件安装【图文笔记】
  • 将Django连接到mysql
  • numpy学习笔记8:数组属性和基础操作的详细描述
  • C++中pow函数的作用是什么,如何使用它?
  • Etcd 服务搭建
  • 【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
  • 网络编程day2
  • C++中的左移(<<)、右移(>>)运算符
  • Java数据类型 Arrays VS ArraysList VS LikedList 解析
  • 从数据洪流到智能洞察:人工智能如何解锁大数据的价值?
  • C++与C的基本不同
  • 美联储官员:美国经济增速可能放缓,现行关税政策仍将导致物价上涨
  • 马上评|家长抱婴儿值护学岗,如何避免“被自愿”?
  • 巴方:印度上周导弹袭击造成至少40名平民死亡
  • 第四届长三角国际应急博览会开幕,超3000件前沿装备技术亮相
  • 专访|韩国世宗研究所中国研究中心主任:李在明若上台将推行均衡外交
  • 《AI×SCIENCE十大前沿观察》9:合成数据和数据基础设施