数组——螺旋矩阵II

文章目录

题目顺序:代码随想录算法公开课,b站上有相应视频讲解

一、题目

59. Spiral Matrix II

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

Example 1:

Input: n = 3

Output: [[1,2,3],[8,9,4],[7,6,5]]

Example 2:

Input: n = 1

Output: [[1]]

Constraints:

1 <= n <= 20

二、题解

循环不变量

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> res(n,vector<int>(n,0));
        int startX = 0,startY = 0,offset = 1,count = 1;
        int i,j;
        int loops = n / 2;
        while(loops--){
            i = startX,j = startY;
            for(j = startY;j < n - offset;j++) res[i][j] = count++;
            for(i = startX;i < n - offset;i++) res[i][j] = count++;
            for(;j > startY;j--) res[i][j] = count++;
            for(;i > startX;i--) res[i][j] = count++;
            startX++;
            startY++;
            offset++;
        }
        if(n % 2 == 1) res[n/2][n/2] = count;
        return res;
    }
};
相关推荐
No0d1es6 分钟前
GESP CCF C++六级编程等级考试认证真题 2024年12月
开发语言·c++·算法·青少年编程·gesp·ccf·六级
编码小哥14 分钟前
C++信号处理
c++
机器视觉知识推荐、就业指导20 分钟前
C++设计模式:组合模式(公司架构案例)
c++·后端·设计模式·组合模式
就爱学编程26 分钟前
重生之我在异世界学编程之C语言:数据在内存中的存储篇(上)
c语言·数据结构
长安051128 分钟前
面试经典题目:LeetCode134_加油站
c++·算法·面试
m0_6949380132 分钟前
Leetcode打卡:考场就坐
javascript·算法·leetcode
越甲八千35 分钟前
重拾设计模式--工厂模式(简单、工厂、抽象)
c++·设计模式
狄加山6751 小时前
数据结构(顺序表)
数据结构
Protinx1 小时前
2009年408真题解析-数据结构篇(未完)
数据结构·经验分享·考研·408·计算机考研
析木不会编程1 小时前
【数据结构】【线性表】栈在算术表达式中的应用
数据结构