[导读]今天为大家分享一道关于螺旋矩阵的问题。 话不多说,直接看题目。 01 第54题:螺旋矩阵 第54题:定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]
今天为大家分享一道关于螺旋矩阵的问题。
话不多说,直接看题目。
第54题:定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例 1:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]
示例 2:
输入:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]
输出: [1,2,3,4,8,12,11,10,9,5,6,7]
(题目有一定难度,如果没有思路,可以先打两把王者...)
本题的思路,在于模拟螺旋的移动轨迹。
问题的难点,在于想明白模拟过程中会遇到什么问题。
那模拟的过程中会遇到什么样的问题?边界处理。
因为只有我们能找到边界(边界包括:1、数组的边界 2、已经访问过的元素),才可以通过“右,下,左,上”的方向来进行移动。同时,每一次碰壁,就可以调整到下一个方向。
思路明确了,我们看一下整个过程。假如我们的数组为:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]
长成这样:
我们首先对其设置好四个边界:
up := 0
down := len(matrix) - 1
left := 0
right := len(matrix[0]) - 1
长成这样:
同时,我们定义x和y,来代表行和列。
如x=2,y=1,则 arr[2][1]=10(第3行第2列)
然后我们从第一个元素开始行军(y=left),完成第一行的遍历,直到碰壁。(y<=right)
下面关键的一步来了,因为第一行已经走过了,我们将上界下调(up++),同时转弯向下走。
直到碰到底部时(x<=down),我们将右界左调(right--),转弯向左走。
后面向左和向上,分别完成下界上调(down--)和左界右调(left++)。
最后,对剩下的矩阵重复整个过程,直到上下、左右的壁与壁碰在一起(up <= down && left <= right,这是避免碰壁的条件)。
所以这道题很简单,只要会碰壁,就可以顺利得到代码(很漂亮,不是吗?):
1func spiralOrder(matrix [][]int) []int {
2 var result []int
3 if len(matrix) == 0 {
4 return result
5 }
6 left, right, up, down := 0, len(matrix[0])-1, 0, len(matrix)-1
7 var x, y int
8 for left <= right && up <= down {
9 for y = left; y <= right && avoid(left, right, up, down); y++ {
10 result = append(result, matrix[x][y])
11 }
12 y--
13 up++
14 for x = up; x <= down && avoid(left, right, up, down); x++ {
15 result = append(result, matrix[x][y])
16 }
17 x--
18 right--
19 for y = right; y >= left && avoid(left, right, up, down); y-- {
20 result = append(result, matrix[x][y])
21 }
22 y++
23 down--
24 for x = down; x >= up && avoid(left, right, up, down); x-- {
25 result = append(result, matrix[x][y])
26 }
27 x++
28 left++
29 }
30 return result
31}
32
33func avoid(left, right, up, down int) bool {
34 return up <= down && left <= right
35}
最后再自恋一把:
注:本系列所有教程中都不会用到复杂的语言特性,大家不需要担心没有学过相关语法。算法思想最重要,使用各语言纯属本人爱好。同时,所有代码均在leetcode上进行过测试运行,保证其严谨性!
每天一道图解算法,如需进群 ↓↓↓
欢迎加微信:llhaohao
小浩算法~
每天一起学习图解漫画算法。
一起刷题,一起成长!
~长按下方二维码进行关注吧~
关注领取 "GeekTime" 全部资源
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
上海2023年9月15日 /美通社/ -- 9月15日,距离第六届中国国际进口博览会(以下简称进博会)正式开幕倒计时50天。作为全球知名的制造型企业,Brother将在11月...
关键字:
IDE
矩阵
通信
SI
珠海2023年3月3日 /美通社/ -- 2023年3月3日,珠海金智维信息科技有限公司(简称"金智维")在珠海成功举办以"新生产力·再谱新章"为主题的金智维C轮融资...
关键字:
人工智能
数字化
矩阵
数字经济
北京2023年2月3日 /美通社/ -- 近期,雀巢在中国的首款冷链鲜牛奶 -- 雀巢A2 β-酪蛋白鲜牛奶重磅上市,为消费者带来高品质珍稀鲜奶的全新体验。 作为全球知名食品饮料企业,雀巢在不断提升产品品质的同时响应着...
关键字:
ARM
矩阵
研讨会
INSTITUTE
11月20日,上海慧新辰实业有限公司在上海举办与深创投投资签约仪式暨新品发布会,发布了由其自主研发的第一颗LCOS芯片,并宣布获得国内知名投资机构深创投数千万元投资。“今天(11月20日)是深创投和慧新辰(上海慧新辰实业...
关键字:
LCOS芯片
投资
矩阵
上海2022年11月21日 /美通社/ -- 11月10日,美通社2022新传播年度论坛在上海举办。富士胶片(中国)投资有限公司(以下简称"富士胶片(中国)")凭借多元化传播手段成功展示企业形象,摘得...
关键字:
富士
ST
数码相机
矩阵
今年逸仙电商以"逸彩之境,耀未来"为主题再赴进博之约,不仅展示了旗下高端科技护肤品牌 Galenic法国科兰黎、源自英国的 SPA 级奢养护肤品牌 EVE LOM 的至新臻品,更携集团旗下全矩阵品牌首次共同亮相进博会。E...
关键字:
EV
矩阵
美的
NI
全球高端烈酒市场领军者人头马君度集团(Rémy Cointreau Group)携旗下全产品矩阵及三款首发新品,以"卓越品质,致臻未来"为主题,连续第三年亮相中国国际进口博览会(以下称"进博会"),旨在展现人头马君度深耕...
关键字:
GROUP
矩阵
ADI宣布友达光电将在其汽车宽屏显示器产品系列中使用ADI的矩阵LED显示屏驱动器技术。此项业内优异的技术支持局部调光,可将功耗显著降低至少50%,满足功能安全要求。 该驱动器通过专有电源工艺技术开发而成,集成了所有外部...
关键字:
ADI
LED显示屏
矩阵
驱动器
强生医疗科技携手乐城加速赋能外科数字化创新 上海2022年10月31日 /美通社/ -- 10月28日,由强生医疗科技携手海南博鳌乐城国际医疗旅游先行区管理局打造的"博鳌外科直播时刻"第三季圆满收官...
关键字:
数字化
APP
矩阵
BSP
TwinTandem项目为轨道交通节约能源、高速运行开辟创新之路 TwinTandem轴承预期使用寿命长达300万公里 顺利完成概念验证:舍弗勒数据矩阵码(DMC)搭配固定式测量系统,实现轴承维护优化...
关键字:
轨道交通
WIN
AN
矩阵
芝加哥2022年9月17日 /美通社/ -- 采用尖端微应答器技术彻底改变实物产品与材料跟踪的公司P-Chip Corporation,今日推出最新突破性p-Chip Code™安全跟踪标签。p-Chip代码跟踪器将基于...
关键字:
CHIP
代码
应答器
矩阵
上海2022年9月8日 /美通社/ -- 9月7日,骊住水科技集团旗下百年卫浴品牌美标举办品牌焕新发布会,正式宣布焕新品牌的全球首发,以积极拥抱变革的精神态度,迈向美好未来。以"LIFE.LOVE.HOME爱家...
关键字:
数字化
矩阵
OV
BSP
上海2022年9月7日 /美通社/ -- 全球卫浴与家装产品制造商骊住水科技集团携手旗下德国高仪、美国美标、日本伊奈及骊住厨房四大品牌,以"创新设计,筑心生活"为展会主题,首度共同亮相202...
关键字:
可持续发展
国美
数字化
矩阵
北京2022年9月3日 /美通社/ -- 9月1日至9月5日,2022年中国国际服务贸易交易会金融服务专题展在北京首钢园正式开展,此次金融专题展以"开放融合、绿色未来"为主题,共有181家境内外金融机...
关键字:
PLAYER
矩阵
NAS
VIDEO
上海2022年9月2日 /美通社/ -- 自然堂的首个抖音电商超级品牌日活动,携手全新面膜全球代言人王一博,在抖音发起火爆全域的"实力发光秀一波"挑战赛,号召消费者秀出闪耀自我,同时上线明星同款抖音电商超级品牌日礼盒,更...
关键字:
矩阵
BSP
THREE
流媒体
(全球TMT2022年8月22日讯)8月19日,在"新新向上 智汇同行"2022年浪潮网络合作伙伴大会上,浪潮网络发布400G云中心网络核心交换机产品——CN12900E,拥有400G算网一体核心超宽端口,适用于云计算...
关键字:
交换机
矩阵
端口
(全球TMT2022年8月9日讯)新华社等中央主要媒体海外传播矩阵及中国·浙江英文网、印象浙江英文网、浙江英语电视传播窗口(ZTV NEWS)、中国蓝国际融媒矩阵、美丽浙江短视频矩阵、天目新闻客户端英语频道等平台,邀请...
关键字:
大赛
矩阵
AN
DYNAMIC
上海2022年7月29日 /美通社/ -- 自然堂历经近10年砥砺研发,将源自喜马拉雅极地的超极酵母(注1)喜默因™注入全新第五代小紫瓶、敏感头皮修护精华中,带来细胞级修护新生,再度成功引爆自然堂天猫超级品牌日。本次活动...
关键字:
矩阵
TOP
BSP
流媒体
深圳2022年7月26日 /美通社/ -- 一年一季的天虹全球好物节拉开序幕!作为天虹的独家好物 -- 天虹自有品牌也在此期间全面上新,进一步走向市场。 天虹自有品牌矩阵全方位服务天虹顾客 天虹自有品牌自2003...
关键字:
BSP
供应链
矩阵
ISO
上海2022年7月19日 /美通社/ -- 复星旅文旗下百年旅游品牌Thomas Cook托迈酷客迎来181周年庆典。庆典现场,复星旅文旗下酒店管理公司 -- 卡萨酷客国际 Casa Cook International...
关键字:
COO
CE
DNA
矩阵