最大利润数组c++多次出售

Maximum profit array c++ multiple sell

本文关键字:c++ 数组      更新时间:2023-10-16

给定一个大小为n的数组,该数组表示对象在n天内的价格。每天你要么买一件物品,要么卖掉任何数量的物品来赚钱。假设你总能买到一件物品。只有当你有一些物品时,你才能出售。因此,为了最大限度地提高总利润,你必须选择特定的日期进行买卖。

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

请帮我回答这个问题。我已经看到了我们必须选择买卖日期的问题。。但这似乎对我有帮助,因为在这里,你每天都要买卖。。请给我一些如何进行的想法

如果你要保持价格的平均值,你总是可以在低于平均值时买入,在高于平均值时卖出。

你必须保留每天的总价格,所以第一天和第二天是5,第三天是14,以此类推

然后将其除以到目前为止经过的天数,因此14/3=4.66

如果当天高于平均水平,并且你有物品,就卖出。否则,请购买。

希望能有所帮助!