算法训练营第四天|螺旋矩阵
今日学习的文章链接和视频链接https://www.bilibili.com/video/BV1SL4y1N7mV/自己看到题目的第一想法第一想法是先定义矩阵的上下左右四个边界然后按照从左到右从上到下从右到左从下到上的顺序依次填充数字。每填完一圈就把对应的边界往里缩一圈直到所有数字都填完。自己实现过程中遇到哪些困难1.我一开始没有严格按照 “填完一条边再收缩对应边界” 的顺序来写比如刚填完上边界就先把左边界收缩了导致后续的循环范围错误中间部分的数字填充出现了重叠和遗漏。2.一开始忘记在每个循环里加上num n*n的判断在处理奇数阶矩阵时循环会多执行一次导致边界越界访问程序直接报错今日收获心得1.这道题让我真正理解了 “区间定义” 在算法题里的重要性。就像视频里提到的二分搜索里用到的左闭右开或左闭右闭的区间思想在这里同样适用。只要统一了边界的开闭规则循环的终止条件和边界收缩就不会乱。2.这种模拟转圈的问题其实逻辑并不复杂但非常考验细节。写代码前一定要先在纸上把流程走一遍明确每一步的边界变化和循环范围不要上来就直接敲代码否则很容易在边界控制上反复踩坑。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2525729.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!