基本思想


例题1
- 活动选择问题

solution
按照结束时间排序,如果不与之前选择的冲突就选
正确性:不会使之前变差,也不会影响后面
例题2
- 分糖果

solution
- 按分数从低到高排序,然后c[i]=max(c[i-1],c[i+1])+1,还没分到的就是=0
因为需要排序,所以复杂度nlogn - 我们发现在严格递增和递减数列中分发的糖果也是递增或递减的
所以我们可以来回扫两遍,取最大值
左到右时a[i]>a[i-1],c[i]=c[i-1]+1
右到左时a[i]>a[i+1],c[i]=max(c[i],c[i+1]+1左右综合考虑