链接

https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/

耗时

解题:38 min
题解:10 min

题意

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

思路

将矩阵的每一圈作为一个循环节,问题即变为按从外到内的顺序顺时针输出矩阵每一圈的数字。一圈顺时针读取又可拆分为 4 部分,以最左上角的数字为起点,从左到右,从上到下,从右到左,从下到上。

PS: 特殊情况有一圈只有一行或一列,矩阵为空。

AC代码

class Solution {public:void solve(int x, int y, int xs, int xt, int ys, int yt, vector<vector<int>>& matrix, vector<int> &ans) {ans.push_back(matrix[x][y]);while(++y < yt) {ans.push_back(matrix[x][y]);}if(xt-xs == 1) return ;y = yt-1;while(++x < xt) {ans.push_back(matrix[x][y]);}if(yt-ys == 1) return ;x = xt-1;while(--y >= ys) {ans.push_back(matrix[x][y]);}y = ys;while(--x > xs) {ans.push_back(matrix[x][y]);}}vector<int> spiralOrder(vector<vector<int>>& matrix) {if(matrix.empty()) return {};vector<int> ans;int n = matrix.size();int m = matrix[0].size();for(int i = 0, j = 0; i < (n+1)/2 && j < (m+1)/2; ++i, ++j) {solve(i, j, i, n-i, j, m-j, matrix, ans);}return ans;}
};

【leetcode】剑指 Offer 29. 顺时针打印矩阵(shun-shi-zhen-da-yin-ju-zhen-lcof)(模拟)[简单]相关推荐

  1. leetcode剑指 Offer 29. 顺时针打印矩阵

    一:题目 二:上码 class Solution {public:vector<int> spiralOrder(vector<vector<int>>& ...

  2. 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java

    <LeetCode力扣练习>剑指 Offer 29. 顺时针打印矩阵 Java 一.资源 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matr ...

  3. 剑指 Offer 29. 顺时针打印矩阵

    题目 剑指offer的解题思路 顺时针打印矩阵,可以分解为每次打印一个数,顺序是从左到右,从上到下,然后从右到左,从下到上. 打印每一圈的起点(startX,startY)分别为(0,0),(1,1) ...

  4. 打印矩阵 java_【Java】 剑指offer(29) 顺时针打印矩阵

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 每次打印矩阵最外面的一圈(用方法printMatrix ...

  5. 【完整可运行代码】剑指 Offer 29. 顺时针打印矩阵

    立志用最少的代码做最高效的表达 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2, ...

  6. 剑指offer——29.顺时针打印矩阵(不熟)

    题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 ...

  7. 剑指offer 29 顺时针打印矩阵(可逆时针,任一点开始)

    原书上写的解太麻烦了,而且还没有扩展性(比如从右上角开始打印,或者逆时针打印). 此外多个for循环的起止点也让人头晕,每个方向都要单独判断步进方向,因此代码也缺少优雅性. 这里我用direction ...

  8. 【算法】剑指 Offer 29. 顺时针打印矩阵

    1,概述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6

  9. 剑指Offer(29)顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...

最新文章

  1. 给大家推荐一个.Net的混淆防反编译工具ConfuserEx
  2. 谷歌AutoML鼻祖Quoc Le新作AutoML-Zero:从零开始构建机器学习算法
  3. python详细安装教程环境配置-python环境安装详细步骤
  4. 我的 2021 之感谢有你们(上篇)
  5. 洛谷P4768 [NOI2018]归程 [可持久化并查集,Dijkstra]
  6. 切片器可以设置日期格式?_Power BI 中的切片器
  7. 轻松矿工抽水多少_欧冠 皇马vs顿涅茨克矿工 矿工主力缺席 皇马主场霸气狂飙...
  8. IDEA上传本地项目到SVN
  9. 通过迁移的方式解决Active Directory服务器问题之5-恢复服务器的应用
  10. XidianOJ 1007 易碎的鸟蛋
  11. 阻抗匹配 及 SI9000 使用
  12. SIFT算法原理介绍
  13. 正好股票资讯大盘平衡被打破
  14. 2.cycloneIII系列FPGA下载模式的配置
  15. 手机QQ2010(BlackBerry)Beta1公测
  16. 【大话云原生】煮饺子与docker、kubernetes之间的关系
  17. 【短视频运营】账号定位 ( 擅长方向 | 利他性 | 变项方向 | 赛道现状 | 账号成本 | 账号领域垂直 )
  18. Linux应用开发入门
  19. MYSQL学习笔记-(白夜黑羽)
  20. MVP -----个人理解与示例(android例子 实现)

热门文章

  1. 设置浏览器不使用缓存
  2. 期货中的期什么意思(期货什么意思是什么)
  3. Java集合、IO、多线程的一些知识
  4. 联想计算机M.2固态银盘,自己如何安装M.2固态硬盘?台式机与笔记本电脑安装M.2 SSD图文教程...
  5. Power Query|M函数:数据类型及数据结构
  6. 各个版本的Xcode/IOS SDK官网下载
  7. 计算机主机的拆卸的注意事项,如何进行电脑主机除尘及板卡维护
  8. JPA 5.映射关联关系
  9. windows10使用cuda11搭建pytorch深度学习框架——运行Dlinknet提取道路(二)——代码运行问题解决
  10. WSDM‘23 推荐系统论文梳理