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

剑指Offer29 -- 模拟

1. 题目描述

打印蛇形矩阵



2. 思路

  1. 状态机模拟
  2. 我称之为模拟优化,因为代码少,简洁,优化


3. 代码(模拟优化)

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        int n, m;
        if(!(n = matrix.size()) || !(m = matrix[0].size()))   return {};
        vector<int> res;
        int left = 0, right = m - 1;
        int top = 0, down = n - 1;
        while(left <= right && top <= down) {
            cout << left << ' ' << right << endl << top << ' ' << down << endl;
            for(int i = left; i <= right; i ++ )     res.emplace_back(matrix[top][i]);
            for(int i = top + 1; i <= down; i ++ )   res.emplace_back(matrix[i][right]);
            if(top != down) // 特判,不然同一行,从左到右走和从右到左走会重复
            for(int i = right - 1; i >= left; i -- ) res.emplace_back(matrix[down][i]);
            if(left != right)   // 特判,不然同一行从上到下走和从下到上走重复了
            for(int i = down - 1; i >= top + 1; i -- )   res.emplace_back(matrix[i][left]);
            left ++ , right -- , down -- , top ++ ;
        }
        return res;
    }
};
/*
[[1]]
[[1,2],[3,4]]
[[1,2,3],[4,5,6],[7,8,9]]
[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
[[1,2,3,4,11],[5,6,7,8,22],[9,10,11,12,33],[44,55,66,77,88]]

1  2  3  4
5  6  7  8
9 10 11 12
*/

相关文章:

  • 视频AI赋能水利行业生态治理,水电站大坝漂浮物实时监测与智能预警方案
  • onlyoffice实现office文件在线编辑保存
  • Docker 安装部署Harbor 私有仓库
  • Nginx 优化
  • CentOS与Ubuntu命令对比指南:从软件包管理到系统配置
  • 面向对象——开闭原则(Open-Closed Principle, OCP)
  • Spring 及 Spring Boot 条件化注解(15个)完整列表及示例
  • matlab仿真MIMO天线
  • 深度学习篇---paddleocr正则化提取
  • 系统如何查找文件?inode号又是什么?
  • 0 基础速成 AI 编程指南
  • Vue 项目中使用$refs来访问组件实例或 DOM 元素,有哪些注意事项?
  • 基础认证-判断题
  • NX二次开发刻字功能——拉伸功能
  • 【质量管理】防错(POKA-YOKE)的概念、特点和作用解析
  • 如何降低频谱分析仪的底噪
  • 并查集解题记录128最长连续序列200岛屿数量547省份数量684冗余连接
  • 【人工智能】从 Llama 到 DeepSeek:开源大模型的演进与技术对比
  • 青少年编程与数学 02-011 MySQL数据库应用 19课题、存储引擎
  • 第三卷:覆舟山决战(85-108回)
  • 网站建设公司软文/百度关键词点击排名
  • 武汉网页制作/百度seo效果怎么样
  • 营销最好的方法/北京seo排名方法
  • 自建站需要注册公司吗/sem竞价托管代运营
  • 如何查看网站的点击量/网店运营培训
  • 美橙做过网站案例/会计培训班需要学多长时间