题目:顺时针打印矩阵

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

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]

示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]

限制:

0 <= matrix.length <= 100
0 <= matrix[i].length <= 100

解题:

class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {//判断是否为空if(matrix.size() == 0 || matrix[0].size() == 0) return {};vector<int> res;int top = 0;int bottom = matrix.size() - 1;int left = 0;int right = matrix[0].size() - 1;while(true){for(int i=left;i<=right;i++){res.push_back(matrix[top][i]);}//top下移top++;if(top > bottom ) break;for(int i=top;i<=bottom;i++){res.push_back(matrix[i][right]);}right--;if(right < left) break;for(int i = right;i>=left;i--){res.push_back(matrix[bottom][i]);}bottom -- ;if(bottom < top) break;for(int i=bottom;i>=top;i--){res.push_back(matrix[i][left]);}left++;if(left > right) break;}return res;}
};

剑指offer:面试题29. 顺时针打印矩阵相关推荐

  1. 剑指offer面试题29. 顺时针打印矩阵(边界问题)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 详见链接 代码 class Solution:def spiralOrder(self, matrix:[[int]]) ...

  2. 剑指offer面试题[20]-顺时针打印矩阵

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

  3. 剑指offer十九之顺时针打印矩阵

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

  4. java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里顺时针的顺序打印出每一个数字.测试用例如下图: 测试数组 思路分析 这道题目并不难,关键在于边界控制!每一层遍历均从左上角开始,逐层往里完成遍历. Java代码实现 ...

  5. 剑指offer(19)顺时针打印矩阵

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

  6. (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数

    剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...

  7. 剑指offer——面试题29:数组中出现次数超过一半的数字

    剑指offer--面试题29:数组中出现次数超过一半的数字 Solution1: 20180902日整理 注意几点: 1.若下一个数字和我们之前保存的数字相同,则次数 +1 2.若下一个数字和我们之前 ...

  8. 剑指offer面试题[29]-数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  9. 【剑指offer-Java版】20顺时针打印矩阵

    顺时针打印矩阵:重在理解,毕竟作者分析的那个方法看起来还是蛮复杂的-所以自己写了个接地气的方法 重在逻辑的一个题,一次性完全写对还是比较困难的 public class _Q20 {public vo ...

最新文章

  1. R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置x轴的标签文本使用粗体字体)
  2. GridPanel的一些小技巧
  3. 1039 Course List for Student (25 分)_33行代码AC
  4. 网站CSS样式不起作用,或只有一部分起作用?随手记
  5. 买了服务器之后如何操作系统,买了服务器之后如何操作系统
  6. 【英语学习】【WOTD】zero-sum 释义/词源/示例
  7. eclipse里maven install时,报错提示jdk为无效的目标版本:1.7
  8. Android中需要了解的数据结构(一)
  9. 通过注册表修改键盘映射
  10. HTML获奖作品,2015年配色优秀的20个网页设计作品 含配色方案
  11. oracle vm 强制关机,[已解决]Virtualbox安装archlinux过程中客户机和宿主机全部卡死...
  12. ORACLE RAC 一节点出现Suspending MMON slave action kewrmrfsa_ for 82800 seconds
  13. 开源一个 Python 中文数据结构和算法教程
  14. 论文阅读:《Rethinking Pseudo-LiDAR Representation》
  15. pwn暑假训练(九) emem原来昨天是8今天是9
  16. 使用remote desktop manager管理windows远程桌面连接
  17. python全栈开发中级_python全栈开发中级班全程笔记(第二模块)第一部分:文件处理...
  18. 极光 php服务器,极光 php推送
  19. 3dmax火车运行制作
  20. 黄芪破壁草本的两种煲汤做法

热门文章

  1. ElasticSearch(六) Update API
  2. linux下卸载自带jdk,重新安装jre运行环境
  3. Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组
  4. unity3d-----Collider 组件参考
  5. 图片和文件上传的两款插件
  6. 一.Timesten安装
  7. Windows图标:有一些你未必知道的东西
  8. listener.ora、sqlnet.ora、tnsnames.ora 详解
  9. rancher 外置 mysql_rancher使用外部数据库无法正常使用
  10. php url模式在哪修改,如何在nginx环境中启用php的pathinfo URL模式[修正]