螺旋矩阵II(leetcode 59)

转圈过程(边界处理)遵循循环不变量的原则,坚持一个原则处理每一条边,左闭右开处理

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> num(n, vector<int>(n, 0));
        int startx = 0;
        int starty = 0;
        int offset = 1;
        int count = 1;
        int loop = n/2;
        int i;
        int j;
        while(loop --)
        {
            
            for( j = starty; j < n - offset; j++)
            {
                num[startx][j] = count;
                count ++;
            }
            for( i = startx; i < n - offset; i++)
            {
                num[i][j] = count;
                count ++;
            }
            for( ; j > starty; j--)
            {
                num[i][j] = count;
                count ++;
            }
            for( ; i > startx; i--)
            {
                num[i][j] = count;
                count ++;
            }
            startx++;
            starty++;
            offset++;
        }
        if(n % 2)
        {
            num[n/2][n/2] = count;
        }
        return num;
    }
};
相关推荐
程序员大雄学编程38 分钟前
「深度学习笔记4」深度学习优化算法完全指南:从梯度下降到Adam的实战详解
笔记·深度学习·算法·机器学习
小O的算法实验室1 小时前
2022年ASOC SCI2区TOP,基于竞争与合作策略的金字塔粒子群算法PPSO,深度解析+性能实测,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
南莺莺1 小时前
邻接矩阵的基本操作
数据结构·算法··邻接矩阵
微波仿真2 小时前
实现多通道ADC多次测量取平均值,使用DMA
算法
余俊晖2 小时前
多模态文档理解视觉token剪枝思路
人工智能·算法·剪枝·多模态
aramae3 小时前
详细分析平衡树--红黑树(万字长文/图文详解)
开发语言·数据结构·c++·笔记·算法
再卷也是菜3 小时前
C++篇(13)计算器实现
c++·算法
CHEN5_023 小时前
【leetcode100】和为k的子数组(两种解法)
java·数据结构·算法
Codeking__3 小时前
DFS算法原理及其模板
算法·深度优先·图论
Victory_orsh4 小时前
“自然搞懂”深度学习系列(基于Pytorch架构)——01初入茅庐
人工智能·pytorch·python·深度学习·算法·机器学习