leetcode 59.螺旋矩阵

记录一下,觉得倒水思想来做 总体看起来还是比较清晰的。

bash 复制代码
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int a[4][2] = {{0,1}, {1,0}, {0,-1},{-1,0}};

        int direction=0;  //方向
        int num=0;

        int S =n*n;
        int x = 0;
        int y = 0;
        
        vector<vector<int>> Matrix(n, vector<int>(n, 0));

        while(num!=S){
            num++;
            Matrix[x][y]=num;

            x+=a[direction][0];
            y+=a[direction][1];
            if(x>=n || y>=n || x<0 || y<0 || Matrix[x][y]!=0){
                x-=a[direction][0];
                y-=a[direction][1];
                direction = (direction+1)%4;
                x+=a[direction][0];
                y+=a[direction][1];
            } 
        }  
        return  Matrix;

    }
};
相关推荐
技术卷16 分钟前
详解力扣高频SQL50题之550. 游戏玩法分析 IV【中等】
sql·mysql·leetcode·oracle
荒诞硬汉19 分钟前
二维数组相关学习
java·算法
周末程序猿33 分钟前
技术总结|如何使用提升 strlen 的性能?
后端·算法
菜鸟5555537 分钟前
图论:Dijkstra算法
算法·图论·dijkstra·xcpc
科大饭桶1 小时前
数据结构自学Day15 -- 非比较排序--计数排序
数据结构·算法·leetcode·排序算法·c
剪一朵云爱着1 小时前
力扣二叉树的前序中序后序遍历总结
算法·leetcode·二叉树
乌萨奇也要立志学C++1 小时前
【洛谷】单向链表、队列安排、约瑟夫问题(list相关算法题)
算法·链表·list
橘颂TA1 小时前
【C++】C++11特性的介绍和使用(第三篇)
前端·c++·算法·c++11
丶小鱼丶2 小时前
栈算法之【有效括号】
java·算法
技术卷5 小时前
详解力扣高频 SQL 50 题之584. 寻找用户推荐人【入门】
sql·leetcode·oracle