所以我在面试的时候遇到了这个问题,无法解决。希望有人可以提出建议。问题是这样的。
想象一下,您节省了 S 数量的整数。您正在考虑购买股票。有人为您提供了 2 个 N 大小的股票购买价格数组,以及第二天的卖出价格。编写一个能够接收 S 和 2 个数组的算法,并返回第二天能够实现的最大利润。请注意,两个数组的长度相等。第一个数组中索引 i 处的数字显示第 i 个股票的购买价格,第二个数组中索引 i 处的数字显示第 i 个股票的卖出价格。
例如。S = 10, buy_price = [4, 6, 5], sell_price = [6, 10, 7]
,您的储蓄是 10,有 3 个股票期权。第一个期权买入价为4,次日卖出价为6。第二个期权买入价为6,次日卖出价为10。等等等等。这里的最大利润是 6,您可以在其中购买价格为 4 和 6 的股票期权,然后在第二天卖出。您的函数应在此处返回 6。
我最初的方法是找出每只股票的利润/成本比率并对其进行分类。然而,这可能不会导致最理想的股票购买。例如,对于这种情况S = 10, buy_price = [6, 5, 5], sell_price = [12, 9, 8]
,最好的选择不是购买成本为 6 的股票,即使它具有最高的利润/成本比(你不能用剩下的 4 个储蓄购买任何东西),而是购买其他 2 个股票期权最大利润为 7。
有谁知道如何解决这个问题?谢谢!