Lintcode91 Minimum Adjustment Cost solution 题解

【题目描述】

Given an integer array, adjust each integers so that the difference of every adjacent integers are not greater than a given number target.

If the array before adjustment isA, the array after adjustment isB, you should minimize the sum of|A[i]-B[i]|

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

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

【题目链接】

www.lintcode.com/en/problem/minimum-adjustment-cost/

【题目解析】

这道题是背包问题。

mac[i][j]表示前i个元素满足要求且第i个元素为j的最小cost。

初始化:mac[1][j] = Math.abs(A[0] - j),根据题意j在1到100之间。

对于所有在范围内的k,当第i位元素取j时,取符合要求的第i-1位元素为k的情况的最小值,其中abs(j-k)的值要小于target才能符合要求。

如果第i-1个数是j, 那么第i-2个数只能在[lowerRange, UpperRange]之间,lowerRange=Math.max(0, j-target), upperRange=Math.min(99, j+target),

【参考答案】

www.jiuzhang.com/solutions/minimum-adjustment-cost/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,790评论 0 33
  • 以前海风拂过发端, 那是轻抚, 你喜上眉梢; 而今雨夜敲响窗檐, 这是鞭打, 我愁上脸颊; 从此月缺花残, 再无破...
    左半邊思維阅读 318评论 0 1
  • 人非圣贤,孰能无过。每个人都会犯错,但我们要勇于承担,伤害了别人,就应该向对方表示歉意。 但道歉的细节,很大程度上...
    我奉你为神阅读 216评论 1 2
  • 最近,一篇据说是获得了“2016年机关单位论文大赛一等奖”的文章——《卸磨杀驴》火爆网络。细读之后,其中意义值得品...
    盛创科技V白起阅读 629评论 0 1