一个图像有n个像素点,存储在一个长度为n的数组img里,每个像素点的取值范围[0,255]的正整数。
请你给图像每个像素点值加上一个整数k(可以是负数),得到新图newImg,使得新图newImg的所有像素平均值最接近中位值128。
请输出这个整数k。
这道题的主要考察点是模拟和最小化差异值的问题。具体来说,我们需要调整输入数组中的每一个数,使得它们的平均数最接近128,同时限定每个元素的值在 [0, 255] 范围内。代码的核心思想是对每个调整范围(-255<=i<=255)进行尝试,计算调整后的数组的平均值,并找到使得调整后平均值最接近128的那个i,相等则取i最小的那个即可
#include <bits/stdc++.h>
using namespace std;
int pixelValues[105]; // 存储图像的像素点值
int totalPixels; // 图像的像素点总数