【题目网站】
【题目考点】
区间动态规划
【题目思路】
- 输入数组,把长度翻倍
- 初始化最小值数组
- 一个一个区间地填
- 找出最大值与最小值
- 输出答案
【思路讲解】
区间动态规划就是动态规划的升级版,表示数组的每一个值表示一个区间的和或差或其他的。
区间动态规划的思路和动态规划一样,都是先把小区间的值求出来,再慢慢地求出最终区间。
所以,我们可以借助一个表格来梳理题目信息(i表示区间起点,j表示区间终点)
因为题目说石子堆是围成一个圆形,所以我把表格的i翻倍。但因为j上下都一样,这里就不翻倍。i也只到7,原因也是重复了。
(这里我演示最大值,最小值思路几乎一样)n = 4(竖着的为i,横着
的为j)
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
1 |
|||||||
2 |
|||||||
3 |
|||||||
4 |
因为有些格子是没有分数的,比如说i=1,j=1,所以我们就把这些格子设置成0。
0 |
1 |
2 |
3 |
4 |