131:螺旋矩阵II

LeetCode 59 https://leetcode.cn/problems/spiral-matrix-ii/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 初始化一个 n×n 的矩阵,一开始所有元素均为 0。 用一个长为 4 的方向数组 DIRS=[(0,1),(1,0),(0,−1),(−1,0)] 分别表示右下左上 4 个方向。同时用一个下标 di 表示当前方向,初始值为 0,表示一开始向右。 每次移动,相当于把行号增加 DIRS[di][0],把列号增加 DIRS[di][1]。 向右转 90°,相当于把 di 增加 1,但在 di=3 时要回到 di=0。两种情况合二为一,把 di 更新为 (di+1)mod4。 时间复杂度:\(O(n^2)\)。 空间复杂度:O(1)。返回值不计入。 ...

七月 15, 2025 · Cassius

125:搜索二维矩阵

LeetCode 74 https://leetcode.cn/problems/search-a-2d-matrix/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 二分查找,二分开区间为 [-1, mn],对于 mid,对应元素为 matrix[mid / n][mid % n]。 时间复杂度:O(log(mn)),其中 m 和 n 分别为 matrix 的行数和列数。 空间复杂度:O(1)。 ...

七月 15, 2025 · Cassius

118:对角线遍历

LeetCode 498 https://leetcode.cn/problems/diagonal-traverse/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 模拟对角线遍历,当到达边界的时候需要改变方向。需要注意的是在判断边界时有顺序要求,例如向上移动时,需要先处理右边界,再处理上边界。这是因为如果当同时到达右边界和上边界时,如果处理上边界,col 就越界了。 时间复杂度:O(m×n),其中 m 为矩阵行的数量,n 为矩阵列的数量。需要遍历一遍矩阵中的所有元素,需要的时间复杂度为 O(m×n)。 空间复杂度:O(1)。除返回值外不需要额外的空间。 ...

七月 15, 2025 · Cassius