当前位置: 首页 > article >正文

【力扣】54.螺旋矩阵

AC截图

题目

思路

假如矩阵有m行n列,用一个变量total=m*n记录矩阵元素是否访问完毕。

使用四个变量,rowBegin=0,rowEnd=m-1,colBegin=0,colEnd=n-1记录四个边界,然后按照从左到右、从上到下、从右到左、从下到上依次遍历循环,每次修改边界条件直至遍历结束。

代码

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        vector<int> res;

        int m=matrix.size();
        int n=matrix[0].size();

        int rowBegin=0,rowEnd=m-1;
        int colBegin=0,colEnd=n-1;
        int total=m*n;
        while(total>0){
            // 从左到右
            for(int i=colBegin;i<=colEnd&&total>0;i++){
                res.push_back(matrix[rowBegin][i]);
                total--;
            }
            rowBegin++;

            // 从下到上
            for(int i=rowBegin;i<=rowEnd&&total>0;i++){
                res.push_back(matrix[i][colEnd]);
                total--;
            }
            colEnd--;

            // 从右到左
            for(int i=colEnd;i>=colBegin&&total>0;i--){
                res.push_back(matrix[rowEnd][i]);
                total--;
            }
            rowEnd--;

            // 从下到上
            for(int i=rowEnd;i>=rowBegin&&total>0;i--){
                res.push_back(matrix[i][colBegin]);
                total--;
            }
            colBegin++;
        }

        return res;
    }
};


http://www.kler.cn/a/533563.html

相关文章:

  • python算法和数据结构刷题[3]:哈希表、滑动窗口、双指针、回溯算法、贪心算法
  • kubernetes 高可用集群搭建
  • unordered_map/set的哈希封装
  • Linux基础 ——tmux vim 以及基本的shell语法
  • 【R语言】R语言安装包的相关操作
  • 我的AI工具箱Tauri版-ZoomImageSDXL全图超清放大TILE+SDXL
  • PyQt6/PySide6 的 QMainWindow 类
  • 数据传输-工作习惯问题
  • CNN的各种知识点(五):平均精度均值(mean Average Precision, mAP)
  • GaussDB安全配置建议
  • 本地安装部署deepseek
  • 使用 Swift 完成FFmpeg音频录制、播放和视频格式转换应用
  • RabbitMQ 从入门到精通:从工作模式到集群部署实战(一)
  • 【OpenCV实战】基于 OpenCV 的多尺度与模板匹配目标跟踪设计与实现
  • 简易C语言矩阵运算库
  • 【C语言】指针详细解读3
  • 激光工控机在自动化领域中有哪些作用?
  • vim modeline
  • CTP查询资金费率和手续费没响应
  • 零基础Vue入门6——Vue router
  • 【CPP】CPP经典面试题
  • Ollama:一站式 AI 模型管理与交互平台,什么是 Ollama,Ollama 的核心功能,Ollama 的使用场景
  • AWS上设计可图形化创建处理逻辑的智能电话语音客服程序的流程和关键代码
  • Junit5使用教程(3)
  • 3.Pandas库
  • oracle ORA-27054报错处理