Leetcode—54.螺旋矩阵【中等】

2023每日刷题(七十)

Leetcode---54.螺旋矩阵

实现代码

cpp 复制代码
class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        vector<int> ans;
        int m = matrix.size();
        int n = matrix[0].size();
        int row = 0, col = 0;
        int flag = 0;
        while(1) {
            // 右移
            for(; col < n; col++) {
                if(matrix[row][col] != -300) {
                    flag--;
                    ans.push_back(matrix[row][col]);
                    matrix[row][col] = -300;
                } else {
                    flag++;
                    break;
                }
            }
            col--;
            // 下移
            row++;
            for(; row < m; row++) {
                if(matrix[row][col] != -300) {
                    flag--;
                    ans.push_back(matrix[row][col]);
                    matrix[row][col] = -300;
                } else {
                    flag++;
                    break;
                }
            }
            row--;
            // 左移
            col--;
            for(; col >= 0; col--) {
                if(matrix[row][col] != -300) {
                    flag--;
                    ans.push_back(matrix[row][col]);
                    matrix[row][col] = -300;
                } else {
                    flag++;
                    break;
                }
            }
            col++;
            // 上移
            row--;
            for(; row >= 0; row--) {
                if(matrix[row][col] != -300) {
                    flag--;
                    ans.push_back(matrix[row][col]);
                    matrix[row][col] = -300;
                } else {
                    flag++;
                    break;
                }
            }
            row++;
            col++;
            if(flag > 0) {
                break;
            }
            flag++;
        }
        return ans;
    }
};

运行结果


之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
野犬寒鸦2 分钟前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
霖霖总总4 分钟前
[小技巧66]当自增主键耗尽:MySQL 主键溢出问题深度解析与雪花算法替代方案
mysql·算法
rainbow688912 分钟前
深入解析C++STL:map与set底层奥秘
java·数据结构·算法
我在人间贩卖青春17 分钟前
C++之数据类型的扩展
c++·字符串·数据类型
Zfox_29 分钟前
CANN Catlass 算子模板库深度解析:高性能矩阵乘(GEMM)原理、融合优化与模板化开发实践
线性代数·矩阵
wangjialelele1 小时前
平衡二叉搜索树:AVL树和红黑树
java·c语言·开发语言·数据结构·c++·算法·深度优先
苏宸啊1 小时前
C++栈和队列
c++
森G1 小时前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
驱动探索者1 小时前
linux mailbox 学习
linux·学习·算法
ringking1231 小时前
autoware-1:安装环境cuda/cudnn/tensorRT库函数的判断
人工智能·算法·机器学习