给定一个由 n 个区间组成的列表区间,第 i 个元素 [s, e, p] 表示起点 s、终点 e 和选择第 i 个区间获得的 pro t p。求选择一个不重叠区间的子集所能获得的最大收益 t。
如果 [e1 <= s2] 和 [s1 < s2] 这两个区间 [s1, e1, p1] 和 [s2, e2, p2] 称为非重叠区间。
例 1:
输入
n = 3
区间 = {
{1, 2, 4},
{1, 5, 7},
{2, 4, 4}
}
输出:
8
说明
我们可以选择区间 [1, 2, 4] 和 [2, 4, 4],从而获得 8 的收益。
例 2:
输入
n = 3
区间 =
{{1, 4, 4},
{2, 3, 7},
{2, 3, 4}}
输出:
7
说明
我们可以选择区间 [2, 3, 7],得到 7 的结果。
你的任务
您不需要打印或输出任何内容。完成函数 maximum_profit(),该函数接受一个整数 n 和一个二维整数数组 intervals,并返回一个整数,表示通过选择不重叠的间隔所能得到的最大收益。
限制条件
1 <= n 且 n <= 10
1 <= 第 i 个区间的起点 <= 第 i 个区间的终点 <= 10
1 <= 选择第 i 个区间获得的收益 <= 10
-------
同样的问题做过好几次了,就是先将数组排序,然后treemap存储数据,每次保存当前可以获得的最大值。
最后返回即可。