3290. 最高乘法得分
给你一个大小为 4 的整数数组 a 和一个大小 至少为 4 的整数数组 b。
你需要从数组 b 中选择四个下标 i0, i1, i2, 和 i3,并满足 i0 < i1 < i2 < i3。你的得分将是 a[0] * b[i0] + a[1] * b[i1] + a[2] * b[i2] + a[3] * b[i3] 的值。
返回你能够获得的 最大 得分。
提示:
- $a.length == 4$
- $4 <= b.length <= 10^5$
- $-10^5 <= a[i], b[i] <= 10^5$
思路
用dp来做,从后往前选取a[i]、b[j]相乘,考虑2种状态:
选当前a[i]、b[j]相乘,继续考虑a[i-1]、b[j-1]
不选选当前a[i]、b[j]相乘,继续考虑a[i]、b[j-1]
状态转换:
dfs(i,j)=max(dfs(i-1,j-1)+a[i]*b[j],dfs(i,j-1))
点击展开/折叠
| |
参考