hot100|矩阵

📅 2026/7/7 7:31:28 👁️ 阅读次数 📝 编程学习
hot100|矩阵

73. 矩阵置零

暴力解法

克隆一个相同大小的矩阵,空间复杂度是O(mn)

先标记,后修改

空间复杂度是O(m+n)
两个循环。第一循环遍历matrix,标记
第二个循环遍历matrix,修改

54. 螺旋矩阵

思路

  1. 用一个长为 4 的方向数组 DIRS =[(0,1),(1,0),(0, -1),(-1,0)] 分别表示右下左上4个方向
  2. 每次移动,相当于把行号增加 DIRS[di][0],把列号增加 DIRS[di][1]。
    di从0~4
  3. 我用 matrix[i][j]到 i+= DIRS[di][0], j += DIRS[di][1]表示移动

代码

48. 旋转图像

难点

  1. 右移k次,就是倒数第k个结点变成头结点,
    倒数第k+1,k结点断开。
    在单链表中找比在数组中更麻烦,数组中只要找规律得到下标,
    而单链表需要找迭代次数。(这题用快慢双指针也不方便)

代码

  1. 先首尾相连
  2. 在倒数第k+1,k个地方断开。于是要找到第k+1个数

240. 搜索二维矩阵 II

思路

灵神讲的非常易懂。

细节

就是我们控制一个小光标(matrix[i][j]),从右上角开始。
if(matrix[i][j] > target) j–
if(matrix[i][j] > target) i++

代码


这样写就是错的。容易数组越界。