你有一个 n 行 m 列的图片矩阵该图片的像素为 n×m。初始时所有像素块均为白色RGB 是 000。每一次操作可以将一个像素块的 RGB 中的一个数字改变。在每次操作过后请你输出图片是否左右对称?输入格式 第一行三个整数 nmq q 代表操作次数。接下来 q 行每行输入四个整数 ijtc表示将第 i 行第 j 列的格子的 RGB 值的第 t 个数增加 c任何一个 RGB 值的任何一个数如果超出
算法1
暴力枚举左右对称
每次操作后,暴力枚举整个矩阵,判断是否左右对称。时间复杂度为 O(nm^2)。
时间复杂度
每次操作需要遍历整个矩阵,时间复杂度为 O(nm^2)。
空间复杂度
不需要额外的空间。
C++ 代码
算法2
只需要判断左右对称的一半
对于一个左右对称的矩阵,只需要判断其中一半是否等于另一半的倒序即可。因此,每次操作只需要更新左半部分的像素值,然后和右半部分的倒序进行比较,判断是否左右对称。
时间复杂度
每次操作只需要遍历左半部分的矩阵,时间复杂度为 O(nm/2)。
空间复杂度
需要开辟一个数组存储左半部分的像素值。
C++ 代码
原文地址: https://www.cveoy.top/t/topic/bCpu 著作权归作者所有。请勿转载和采集!