背包问题《剑指offer》Java实现动态规划

“满减优惠”问题

2018-10-13  本文已影响107人  南湖Giser

题目描述

    某商店打折促销,满20减5元,现有商品6件,价格分别为P{5,10,13,9,6},问如何选择商品既获得满减优惠,又可花费最少?

思路分析

    这个问题本质是一个"01背包"问题。记满减优惠的界限为gate,如果我们购买所有商品,那么花费totalCost=Σ(Pi),如果totalCost<gate,那么无法获得满减优惠,反之则可以获得满减优惠。记gap=totalCost-gate,那我们的问题就转化成,如果选择商品在总价值sum不超过gap的情况下使得sum最大。这就是一个典型的“01背包问题”了,代码还请大家自己试着实现!

上一篇下一篇

猜你喜欢

热点阅读