贪心

300. 最长递增子序列

灵神视频

定义 g[i] 表示长为 i+1 的上升子序列的末尾元素的最小值。

反证法可证明:g是一个严格递增的数组

659. 分割数组为连续子序列

tail[i]用来表示,以i结尾的子序列个数。这样在遇到i+1时,就可以放进去了。

如果放不了,则开辟一个新序列,并检查 cnt[i+1]>0 and cnt[i+2]>2, 如果不满足,返回 False。