这道题有两个 state , 一个是 只看自己的时间, 另一个是 自己 + 之前不重叠的时间中最大值。

错误想法1

想 sort by end time, 然后用 heap 记 值 和 start time, 但是顺序搞错了, 对 值 heapify 从而连锁的卡在不知道怎么去找 non-overlapping 中的最大值了

做法1

sort by end 或 start time, 然后用 heap 记 start/end time 和 值, 把小于当前时间的pop掉并更新最大值

做法2

将 start 和 end 分开标记,并sort这样一来我们在 start 的时候 就能直接确定 自己 + 之前最大. 在 end 的 时候也可以直接更新最大值