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