1. 首尾区间的最大、最小值问题
例:求 nums 数组的 前K 项中最大值最小值的差值。
1.1 求区间最大、最小值数组
1.1.1 求最大值
tips:只有当其实区间是包含数组的起始位置或者末尾位置才能用这种办法,中间的只能用线段树了。
题目要求起始区间开始的K项内最大值和最小值的差值,首先求起始区间开始的K项内最大值。
- 处理索引0的位置,值为1,由于前面没有值了,所以最大值为1;
- 处理索引1的位置,值为9,区间【0,1)最大值为1,由于9>1,所以该项的最大值为9;
- 处理索引2的位置,值为3,区间【0,2)最大值为9,由于3<9,所以该项的最大值为9;
- 处理索引3的位置,值为5,区间【0,3)最大值为9,由于5<9,所以该项的最大值为9;
- 处理索引4的位置,值为6,区间【0,4)最大值为9,由于6<9,所以该项的最大值为9;
- 处理索引5的位置,值为2,区间【0,5)最大值为2,由于2<9,所以该项的最大值为9。
1.1.2 求最小值
- 处理索引0的位置,值为1,由于前面没有值了,所以最小值为1;
- 处理索引1的位置,值为9,区间【0,1)最小值为1,由于9>1,所以该项的最小值为1;
- 处理索引2的位置,值为3,区间【0,2)最小值为1,由于3<1,所以该项的最小值为1;
- 处理索引3的位置,值为5,区间【0,3)最小值为1,由于5<1,所以该项的最小值为1;
- 处理索引4的位置,值为6,区间【0,4)最小值为1,由于6<1,所以该项的最小值为1;
- 处理索引5的位置,值为2,区间【0,5)最小值为1,由于2<1,所以该项的最小值为1。