有一台机器,它可以储备 2000 度电,现在因为电价是随时间波动的,想要在低点价的时候将电量存储到机器中,高电价的时候将机器中的电量放出来使用,这样就可以产生收益。
电价是每一个小时变化一次:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 343.56875 | 311.06875 | 311.06875 | 311.06875 | 311.06875 | 311.06875 | 311.06875 | 695.06875 | 695.06875 | 1034.86875 | 1108.61875 | 1127.17415 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 695.06875 | 715.06875 | 1041.44675 | 1012.60645 | 1024.16625 | 696.26465 | 695.06875 | 999.86875 | 999.86875 | 695.06875 | 695.06875 | 311.06875 |
每一个小时,可以充放电 500 度。
请问如何设计出一个最优算法,使得在低电价的时候充电,高电价的时候放电,所产生的差价最大(最大收益)?
注:每一个小时都可以控制机器是充电、放电、什么都不做
这个跟 leetcode 上的 714 题很像,只不过这道题不限制同时只能进行一次交易。