华为OD机试真题-最大利润【2023.Q1】

题目描述

商人经营一家店铺,有number 种商品,
由于仓库限制每件商品的最大持有数量是 item[index]。
每种商品的价格是 price[item_index][day]
通过对商品的买进和卖出获取利润
请给出商人在 days 天内能获取的最大的利润

注:同一件商品可以反复买进和卖出
输入描述
3 第一行输入商品的数量 number
3 第二行输入商品售货天数 days
4 5 6 第三行输入仓库限制每件商品的最大持有数量是item[index]
1 2 3 第一件商品每天的价格
4 3 2 第二件商品每天的价格
1 5 3 第三件商品每天的价格
输入:
3
3
4 5 6
1 2 3
4 3 2
1 5 3
输出:
32

解题思路

最开始,将最大利润设置为0。
然后遍历每件商品,计算利润。

  • 遍历每天的价格,计算该商品每天的利润当天价格 - 前一天价格的差值,如果差值为负数,则取0。
  • 将每天的利润累加,得到该商品总利润。
  • 计算该商品的最大利润,商品利润*仓库限制的最大持有数量
  • 将商品最大利润累加到总利润。

参考代码

你可能感兴趣的:(Python,JS),华为,java,算法,面试,开发语言)