c++ 贪心讲解大礼包
贪心是什么?
它其实类似一种思想
就是总问题可以分成许多的子问题
子问题的最优解可以直接推出整个问题
它和动态规划有一定的不同之处 动态规划不能由子问题的最优解推出整个问题的最优解 所以你看都要有一个数组来记录一下嘛
贪心怎么用?
就是说我们把整个问题分成许多的子问题
然后对子问题求得局部最优解
几个简单的例子?
【例1】
n个人打水,每个人用的时间是t1, t2, t3… 现在有m水龙头,问所有人等待时间总和最小.
解:很显然 这一道题我们就要让时间t更短的人先打水 这样子后面的人就可以少等一点时间 这就是一个贪心的思想
【例2】
给定数轴上的很多区间,求尽量多的区间,使得他们两两不相交.
解:这一题倒是比较值得品味一下的 假如这些区间是这个样子的
这里有4条线段 我们按照右端点来排序
右端点最靠前的是1号线段 然后我们在剩下的线段里找满足要求(没有交集)的线段里右端点靠前的线段 这样子剩下的长度多 后面选的线段数也就会更多
(后续内容会持续更新)