基本思想
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190716111207980.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMTEwMzE4,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190716111251385.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMTEwMzE4,size_16,color_FFFFFF,t_70)
例题1
- 活动选择问题
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190716111345597.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMTEwMzE4,size_16,color_FFFFFF,t_70)
solution
按照结束时间排序,如果不与之前选择的冲突就选
正确性:不会使之前变差,也不会影响后面
例题2
- 分糖果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190716111631973.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMTEwMzE4,size_16,color_FFFFFF,t_70)
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左右综合考虑