算法(C++

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

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

示例 1:

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

示例 2:

复制代码
输入:n = 1
输出:[[1]]

提示:

  • 1 <= n <= 20

题解:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> res(n, vector<int>(n, 0));
        int starti=0,startj=0;
        int count=1;
        int circle=n/2;
        int endd=n/2;
        int flag=1;
        int i,j;
        while(circle--){
            i=starti;
            j=startj;
            for(;j<n-flag;j++){
                res[i][j]=count++;
            }
            for(;i<n-flag;i++){
                res[i][j]=count++;
            }
            for(;j>startj;j--){
                res[i][j]=count++;
            }
            for(;i>starti;i--){
                res[i][j]=count++;
            }
            flag++;
            starti++;
            startj++;
        }
        if(n%2!=0){
            res[endd][endd]=count;
        }
        return res;
    }
};

理解:

要分好四个步骤

相关推荐
我叫张小白。20 小时前
Vue3 v-model:组件通信的语法糖
开发语言·前端·javascript·vue.js·elementui·前端框架·vue
系夏普20 小时前
重拾 C++:Ubuntu开发环境下的C++学习
c++
翻斗花园牛图图-20 小时前
Qt开发——系统相关3(Qt网络编程)
开发语言·qt
凋零蓝玫瑰20 小时前
几何:数学世界的空间密码
人工智能·算法·机器学习
kk”20 小时前
C++ AVL树
开发语言·数据结构·c++
西幻凌云20 小时前
认识STLstack容器
c++·stl·适配器·stack·序列式容器
繁华似锦respect20 小时前
C++ 设计模式之观察者模式详细介绍
linux·开发语言·c++·windows·观察者模式·设计模式·visual studio
LDG_AGI20 小时前
【推荐系统】深度学习训练框架(九):推荐系统与LLM在Dataset、Tokenizer阶段的异同
人工智能·深度学习·算法·机器学习·推荐算法
威桑20 小时前
一个 CMake 项目是否只能有一个 install 目录?
linux·c++·cmake
爪哇部落算法小助手20 小时前
每日两题day61
数据结构·c++·算法