最大利润数组c ++多重销售

时间:2014-10-08 19:47:23

标签: c++ arrays algorithm max

给定一个大小为n的数组,表示超过n天的对象价格。每天你必须购买一个物品,或者你可以出售任何数量的物品来赚钱。假设你总是可以买一个物品。只有当你有一些物品时才可以出售。因此,为了最大化总利润,您必须选择特定的一天进行销售和购买。

例如.. N=10 arr={5,0,9,2,9,0,2,7,4,7},现在我们假设您拥有的对象总数为n=0;且总利润为p= 0 在第1天,你没有任何物体,所以无论如何你必须买一个.. n=1 , p=-5现在在第2天你可以购买第二张免费花费n=2p=-5第3天你可以卖掉这两件物品并赚钱n=0p=13 35 同样,我们可以继续进行,获得的最大利润为{{1}}

请帮我解决这个问题。我已经看到了我们必须选择出售和购买的日子的问题..但这似乎对我有所帮助,因为在这里你必须每天买卖。请给我一些想法如何继续

1 个答案:

答案 0 :(得分:0)

如果您要保持平均价格,您可以在低于平均水平时购买,并在高于平均水平时卖出。

你必须保持每天的总价格,所以第一天和第二天为5,第三天为14,依此类推。

然后除以目前为止的天数,所以14/3 = 4.66

如果当天大于平均值并且您有物品,则卖出。否则,买。

希望有所帮助!