【题目描述】

给一个整数数组,调整每个数的大小,使得相邻的两个数的差小于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少。

【注】:你可以假设数组中每个整数都是正整数,且小于等于100。

【题目解析】

这道题是一个动态规划问题。我们定义dp[i][j]为前i个元素满足条件且第i个元素为j时的最小调整代价。

初始化:当处理第一个元素时,dp[1][j]等于|A[0]-j|,其中j的范围是1到100。

对于每个i,从2到n,处理当前元素时,需要考虑前i-1个元素的情况。在每一步,可能的前一个元素k需要满足|j - k| <= target。我们遍历所有可能的k,并选择能使代价最小的值。

具体来说,对于每个i,遍历j的所有可能值,然后对于每个j,遍历k的可能值(满足相邻差的要求),并更新dp[i][j]。这样可以逐步构建出最优的调整方案。

在处理完所有元素后,我们只需要从所有可能的最后一个元素j中找到最小的dp[n][j]即可,结果即为所求的最小调整代价之和。