一:题目

二:上码

class Solution {public:vector<int> spiralOrder(vector<vector<int>>& matrix) {//判空处理 否则会出现空指针异常if(matrix.size() == 0 || matrix[0].size() == 0){return {};}int m = matrix.size();// 行int n = matrix[0].size();//列int loop = min(m/2,n/2); //圈数int starty = 0;//每一圈的起点int startx = 0;//每一圈的起点int border = 1;int i,j;vector<int> ans;while (loop--) {i = startx;j = starty;//最上面的一行  列动 行不动for (j = starty; j < n-border; j++) ans.push_back(matrix[i][j]);//最右面的一列  行动  列不动for (i = startx; i < m-border; i++) ans.push_back(matrix[i][j]);//最下面的一行 for(; j >= border; j--) ans.push_back(matrix[i][j]);//最右面的一行for(; i >= border; i--) ans.push_back(matrix[i][j]); startx++;starty++;border++;//边界}//处理圈数不完整的时候 中间剩下的数 是一个  还是一行  还是一列            if (m > n && n%2 != 0) {//列为奇数  行为偶数 那么的话剩下中间的一列  for(; startx < m-border+1; startx++) {if(matrix[startx][starty] != NULL)ans.push_back(matrix[startx][starty]);     }} else if (m < n && m%2 != 0) {//列为偶数 行为奇数 那么的话剩下中间一行for(; starty < n-border+1; starty++) { if(matrix[startx][starty] != NULL) {ans.push_back(matrix[startx][starty]);}}} else if (m%2 != 0 && m == n){int mid1 = m/2;int mid2 = n/2; ans.push_back(matrix[mid1][mid2]);}return ans;}
};

记得判空啊 记得判空 否则空指针异常

leetcode剑指 Offer 29. 顺时针打印矩阵相关推荐

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

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

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

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

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

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

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

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

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

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

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

    链接 https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ 耗时 解题:38 min 题解:10 min 题意 输入一 ...

  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. 高红冰:“五新”创新乡村商业实践
  2. 实现mysql百度式查询_mysql查询优化建议(百度)
  3. Event Loop、计时器、nextTick
  4. 【Windows Server 2019】文件共享,應該不支持 Everyone 訪問
  5. 一图读懂基于鲲鹏处理器的全栈混合云华为云Stack6.5
  6. linux java amr转mp3_部署ffmpeg及amr转mp3方法
  7. Eclipse开启全字母代码提示
  8. memcached的安装(server、client)、magent整合
  9. php提取汉字拼音首字母,php获取汉字拼音首字母的函数(真正可以使用的)
  10. 国家开放大学2021春1078复变函数题目
  11. SPI(Service Provider Interface)机制
  12. echarts词云第一次出现不了数据要刷新才能出现_隐秘的角落弹幕分析,制作词云,看看观众们对该剧的评价如何...
  13. 简单的matlab阶乘计算
  14. windows蓝屏dump分析方法
  15. 【Excel】五种方法添加打勾方框(其他符号差不多)
  16. Windowed functions can only appear in the SELECT or ORDER BY clauses
  17. Linux下的文件及文件后缀名
  18. 安卓逆向_3 --- 篡改apk名称和图标、修改包名实现应用分身、修改资源去广告、去除re管理器广告...
  19. android棉花糖,清甜棉花糖:安卓M/Android 6.0上手体验评测
  20. 计算机基础1模拟题,计算机基础模拟题1(有答案)

热门文章

  1. 在离线环境中发布.NET Core至Windows Server 2008
  2. Win7安装OnlyOffice(不使用Docker)
  3. 最新Modis影像数据下载完整流程---以MOD13Q1 NDVI数据下载为例(2020年12月2日更新)
  4. 剑指offer之树的子结构
  5. Android之添加快捷方式(Shortcut)到手机桌面
  6. 按一行一行的方法将一个文本文件复制到另一个文件中_命令行技巧:分割文件内容...
  7. char添加一个字符_给你五十行代码把图片变成字符画!程序:太多了,一半都用不完...
  8. 解决IDEA修改已有项目为maven项目时目录结构被改变的问题
  9. 三联《少年》创刊,各领域佼佼者畅言新知,帮少年建立思维素养体系!
  10. 老娘不就是没化妆吗?你几个意思?