news 2026/4/17 5:59:50

算法训练营第四天|59.螺旋矩阵

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法训练营第四天|59.螺旋矩阵

题目建议: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。
题目链接:https://leetcode.cn/problems/spiral-matrix-ii/
视频讲解:https://www.bilibili.com/video/BV1SL4y1N7mV/

一 我的思路

我这一开始完全没思路,不知道怎么让数字按螺旋转起来。
后来看了教程,才明白核心就是一圈一圈填数字,每次都按 “右→下→左→上” 的顺序走,填完一圈就把边界往里缩一点,再填下一圈。
我的步骤:
先定好矩阵的四个边界:最上、最下、最左、最右
从数字 1 开始,按顺序填:
从左到右填最上面一行,填完就把上边界往下挪一格
从上到下填最右边一列,填完就把右边界往左挪一格
从右到左填最下面一行,填完就把下边界往上挪一格
从下到上填最左边一列,填完就把左边界往右挪一格
重复上面的步骤,直到所有数字都填完。

二 代码的实现

class Solution { public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> res(n, vector<int>(n, 0)); int top = 0, bottom = n - 1; int left = 0, right = n - 1; int num = 1; while (num <= n * n) { for (int i = left; i <= right && num <= n * n; i++) res[top][i] = num++; top++; for (int i = top; i <= bottom && num <= n * n; i++) res[i][right] = num++; right--; for (int i = right; i >= left && num <= n * n; i--) res[bottom][i] = num++; bottom--; for (int i = bottom; i >= top && num <= n * n; i++) res[i][left] = num++; left++; } return res; } };

三 我遇到的困难

1 一开始完全不知道怎么控制方向,总想着用一堆 if 判断,越写越乱。
2 边界总是忘更新,填完一行没缩边界,导致数字重复填到同一个位置。
3 写循环的时候,一会儿 i++ 一会儿 i--,很容易搞反,尤其是从右往左、从下往上的时候。
4 数组越界报错,后来才知道每个循环里都要加上 num <= n * n 来控制

四 学习总结

学会了用边界控制来模拟螺旋过程,这样就不用自己写复杂的逻辑了,只要按固定顺序填、按规则缩边界就行。
虽然写得很慢,还一直写错边界,但我把模板背下来了,以后遇到类似的矩阵题,就能直接套用了,也算有收获啦!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 5:59:44

如何管理只读表空间的备份_跳过只读表空间的RMAN优化策略.txt

强制HTTPS需确保Nginx监听80端口&#xff0c;否则跳转失效&#xff1b;排除API等路径需用locationreturn而非全局if&#xff1b;SPA需配置try_files实现history fallback&#xff1b;CDN/HSTS和证书覆盖范围也影响跳转效果。点开「强制HTTPS」就完事&#xff1f;先确认80端口是…

作者头像 李华
网站建设 2026/4/17 5:55:17

CLAP音频分类镜像保姆级教学:从Docker拉取到服务验证全流程

CLAP音频分类镜像保姆级教学&#xff1a;从Docker拉取到服务验证全流程 你是不是遇到过这样的场景&#xff1a;手头有一堆音频文件&#xff0c;想快速知道里面是什么内容——是音乐、是人声对话、还是环境噪音&#xff1f;或者&#xff0c;你想开发一个智能应用&#xff0c;能…

作者头像 李华
网站建设 2026/4/17 5:55:16

以编程增益差值为梯度的智能体框架架构演化论

摘要&#xff1a; 本文在“编程能力作为必要非充分条件”的理论基础上&#xff0c;进一步探讨当应用场景严格收敛于软件工程任务时&#xff0c;框架增益函数 Delta 对于架构迭代的工程指导意义。本文提出&#xff0c;在编程任务的强约束环境中&#xff0c;差值 Delta 不再仅是一…

作者头像 李华