题型方法讲解
首先明确,压缩矩阵存储算法是408考试中的重点、难点、高频考点,甚至曾经达成了连续五年考到程度,让同学们感到恐惧。很多同学都会把这类题型当成一个记公式的题,其实不然,这个视频将会告诉你如何用推导的方式稳定高效解决这类题,告别记忆负担!
什么是压缩矩阵算法?本质上为了节约空间把二维数组压缩存储在一维数组里面的算法就叫压缩矩阵算法,而它又分为行优先和列优先两种方式,顾名思义行优先存储就是先行后列的思想:先存储行号比较小的元素,行号相等时先存储列号小的元素。
int array[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
我们看这个数组,所谓行优先就是从第一行开始存,如果学过线性代数可以把它看成一个三行三列的矩阵,依次存储行向量。
那么好,有了基本的概念,我们来讲解这种题型的通法,我把它称为“画矩阵找关系法”。
注意,请严格执行以下给出的步骤来做题,摒弃死记公式的方法!!
- 画出矩阵(一般题目是二维数组)的基本形状,观察矩阵的地址下标0还是1开始。
- 根据行优先或列优先原则(根据题目)列出基本信息,包括给出的数组元素,它是第几个元素,它将要被存储在哪里(下面通过题目详细解释)
- 研究除了最后一行(列)一共有多少个元素要存储
- 加上最后一行(列)的元素,找到个数与存储地址对应的关系
题目
讲解笔记
视频链接:【每日一题 | 数据结构】压缩矩阵存储算法