螺旋矩阵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;
    }
};
相关推荐
Lojarro6 分钟前
【SQL】实战--查找重复的电子邮箱
数据库·sql·leetcode
南宫生1 小时前
力扣【算法学习day.50】
java·学习·算法·leetcode
蹉跎x1 小时前
力扣108. 将有序数组转换为二叉搜索树
数据结构·算法·leetcode
GIS瞧葩菜1 小时前
3dtile平移子模型以及修改 3D Tiles 模型的模型矩阵z平移
3d·矩阵·cesium
pzx_0011 小时前
【Leetcode】27.移除元素
算法·leetcode·职场和发展
学习同学1 小时前
LeetCode Hot100 31~40
算法·leetcode·职场和发展
南桥几晴秋2 小时前
【算法刷题指南】优先级队列
数据结构·c++·算法·优先队列·大堆·小堆
power-辰南2 小时前
人工智能机器学习算法分类全解析
人工智能·python·算法·机器学习
写代码写到手抽筋3 小时前
机器学习7-AdaBoost算法
人工智能·算法·机器学习
王子良.4 小时前
用Python实现斐波那契数列
经验分享·学习·算法