给您一个长度为 n 的二维整数数组 ranges,其中 ranges[i]=[start ,end ,coins ]表示从开始到结束(包括开始和结束)的所有整数都存在,当我们选择这 i 个范围时,我们将得到硬币数量。您最多可以选择两个区间来收集最多的硬币,但如果您选择了两个区间,这两个区间就不能相交或重叠,否则会相互接触。
注意:您最多可以选择 2 个区间,它们不能相互交叉,但可以相互接触。
示例 1:
输入 :
n=3
ranges={{1,3,4},{2,3,5},{3,4,2}}
输出: 7 7
说明
我们可以看到,我们可以取第 2 和 第三个范围,因为它们不相交 (只有接触),我们可以通过取这两个范围得到最大的硬币(5+2=7)。5+2=7)。
-----
每次只能取2个区间,类似于之前的安排会议或者出租车挣钱问题,
这里面用treemap,来找上个区间的最大值,这里面要加cur_max变量来存。
ranges还要排序一下。就可以了。至少现在不用看题解就能写出来了。