思路:

首先,我们可以先判断每一行和每一列是否完全相同,如果是的话可以直接删除其中一行或一列。

然后,我们可以采用贪心的思想,每次删除一行或一列,使得图像的大小尽可能小。具体来说,我们可以分别计算删除一行和删除一列后的图像大小,并选择其中较小的那个进行删除。这样,我们就可以一直删除直到无法再进行删除为止。

注意,每次删除一行或一列后,我们需要重新计算每一行和每一列是否完全相同。

代码实现:

c++有一个H行W列像素组成的图像 从上往下数第i行 从左往右数第j列的像素用aij来表示图像只由黑白两种颜色组成aij=0表示黑色 aij=1表示白色现在想要压缩这个图像 打算按照如下方法压缩如果存在相邻的两行完全一样 就删除其中一行如果存在相邻的两列完全一样 就删除其中一列重复以上操作直到无法再进行删除为止 可以证明最终结果和删除顺序无关

原文地址: https://www.cveoy.top/t/topic/fyH3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录