贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。
例题1:
拿到题目,看到了几个关键信息:
1:某一行可能有多个脚注;
2:正文(行)必须和其拥有的脚注在同一页;
所以,我们可以这样分析,问题只可能有两种情况:
1:当前页可以容纳当前行与其脚注;
2:当前页不可以容纳当前行与其脚注;
碰到情况1时就没什么好说的了,而碰到情况2时,我们就将页数+1,并容纳这一行;
例题2:
这道题的分析如下:
1:先按照拥有的花生个数,将植株由大到小排序;
2:判断是否能采集到最大的植株:
时间需要大于 一个来回+1(采摘时间)
因为可以从任意列出发,所以就从拥有最多花生的植株那列出发;
如果不能,输出0;
3:判断是否能够采摘更多的花生:
时间需要大于 到达次大的花生植株+从次大的植株返回路边+1(采摘时间);
如果不能,当前采摘到的花生即为答案;
未完待续……