剑指offer面试题29. 顺时针打印矩阵(边界问题)
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
思路
详见链接
代码
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. 顺时针打印矩阵(边界问题)相关推荐
- 剑指offer面试题[20]-顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- 剑指offer十九之顺时针打印矩阵
一.题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里顺时针的顺序打印出每一个数字.测试用例如下图: 测试数组 思路分析 这道题目并不难,关键在于边界控制!每一层遍历均从左上角开始,逐层往里完成遍历. Java代码实现 ...
- 剑指offer(19)顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...
- 剑指offer——面试题29:数组中出现次数超过一半的数字
剑指offer--面试题29:数组中出现次数超过一半的数字 Solution1: 20180902日整理 注意几点: 1.若下一个数字和我们之前保存的数字相同,则次数 +1 2.若下一个数字和我们之前 ...
- 剑指offer:面试题29. 顺时针打印矩阵
题目:顺时针打印矩阵 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9 ...
- 剑指offer面试题[29]-数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 【剑指offer-Java版】20顺时针打印矩阵
顺时针打印矩阵:重在理解,毕竟作者分析的那个方法看起来还是蛮复杂的-所以自己写了个接地气的方法 重在逻辑的一个题,一次性完全写对还是比较困难的 public class _Q20 {public vo ...
最新文章
- 单片机干嘛的?嵌入式是单片机吗?
- python模块datetime将字符串转换为日期
- php数据库访问辅助类,php+MySQL实战案例【二】php数据库辅助类
- 51单片机常用知识点总结
- Java NIO学习系列三:Selector
- 使用Xmodem恢复交换机IOS
- sql 注入 相关函数
- 获取拍照图片,显示大图像
- 软件项目经理应该具备的心态
- mysql5.6编译
- 纯英文换行的css,利用CSS实现纯英文数字自动换行
- SNF快速开发平台2019-APP移动端实际应用效果
- php长按图片保存mui,Vue+mui实现图片的本地缓存
- 推行法定数字货币,现有支付宝/微信等支付系统,会否被数字货币支付系统替代并超越?
- 更改wordpress上传文件大小限制
- databinding 入门 加载本地图片和加载网络图片
- stdafx.h作用以及include中为何iostream必须放在stdafx.h之后?
- 34. 进程管理之优先级,nice,renice,Priority
- SQL 存储过程使用
- RESLAM/ REVO 编译 实时RGBD基于边缘的slam系统
热门文章
- 产品研发管理(二):使用SubVersion进行代码管理
- k8s自定义指标HPA实践(微服务基于自定义指标自动扩缩容的实践)附demo
- css3中定义required,focus,valid和invalid样式
- Python List sort方法无效
- java线程池原理简答_面试官让我讲讲Java线程池的实现原理,我笑了...
- c 中html抓取页面图片,【教程】抓取网并提取网页中所需要的信息 之 C#版
- 介绍Linux系统如何初始化和启动系统服务的
- HDU4026 Unlock the Cell Phone [状态压缩DP]
- vue中v-show v-if v-bind的使用
- APE到底比MP3文件“好听”多少