题目描述

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

思路

详见链接

代码

class Solution:def spiralOrder(self, matrix:[[int]])->[int]:if not matrix:return []l, r, t, b, res = 0, len(matrix[0])-1, 0, len(matrix)-1, []while True:for i in range(l, r+1):res.append(matrix[t][i])t += 1if t > b: breakfor i in range(t, b+1):res.append(matrix[i][r])r -= 1if l > r: breakfor i in range(r, l-1, -1):res.append(matrix[b][i])b -= 1if t > b: breakfor i in range(b, t-1, -1):res.append(matrix[i][l])l += 1if l > r: breakreturn res

复杂度

时间复杂度 O(MN): M, N分别为矩阵行数和列数。
空间复杂度 O(1) : 四个边界 l , r , t , b 使用常数大小的额外空间( res 为必须使用的空间)。

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. 剑指offer:面试题29. 顺时针打印矩阵

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

  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. 单片机干嘛的?嵌入式是单片机吗?
  2. python模块datetime将字符串转换为日期
  3. php数据库访问辅助类,php+MySQL实战案例【二】php数据库辅助类
  4. 51单片机常用知识点总结
  5. Java NIO学习系列三:Selector
  6. 使用Xmodem恢复交换机IOS
  7. sql 注入 相关函数
  8. 获取拍照图片,显示大图像
  9. 软件项目经理应该具备的心态
  10. mysql5.6编译
  11. 纯英文换行的css,利用CSS实现纯英文数字自动换行
  12. SNF快速开发平台2019-APP移动端实际应用效果
  13. php长按图片保存mui,Vue+mui实现图片的本地缓存
  14. 推行法定数字货币,现有支付宝/微信等支付系统,会否被数字货币支付系统替代并超越?
  15. 更改wordpress上传文件大小限制
  16. databinding 入门 加载本地图片和加载网络图片
  17. stdafx.h作用以及include中为何iostream必须放在stdafx.h之后?
  18. 34. 进程管理之优先级,nice,renice,Priority
  19. SQL 存储过程使用
  20. RESLAM/ REVO 编译 实时RGBD基于边缘的slam系统

热门文章

  1. 产品研发管理(二):使用SubVersion进行代码管理
  2. k8s自定义指标HPA实践(微服务基于自定义指标自动扩缩容的实践)附demo
  3. css3中定义required,focus,valid和invalid样式
  4. Python List sort方法无效
  5. java线程池原理简答_面试官让我讲讲Java线程池的实现原理,我笑了...
  6. c 中html抓取页面图片,【教程】抓取网并提取网页中所需要的信息 之 C#版
  7. 介绍Linux系统如何初始化和启动系统服务的
  8. HDU4026 Unlock the Cell Phone [状态压缩DP]
  9. vue中v-show v-if v-bind的使用
  10. APE到底比MP3文件“好听”多少