1.对贪心算法的理解
当一个问题具有最优子结构性质的时候,除了考虑用动态规划法求解,有时也可以用更加简单有效的贪心算法。
贪心算法总是做出在当前看起来是最好的选择,即贪心算法并不是从整体最优的思想加以考虑,它所做出的选择只是在某种意义上的局部最优选择。
我们通常希望贪心选择最终是整体的最优选择,但有时候并不是,即使这样,贪心算法的最终结果却是最优解的很好的近似解。
贪心算法具有两个要素:1)所求问题的最优解可以通过一系列局部最优的选择来达到。
2)贪心算法要求问题具有最优子结构性质。
2.汽车加油问题就是先考虑加满油最长能走多少站到达下一个加油站使加油次数最少,当到达一个加油站时,所剩的油可以支撑到下一个加油站,则不加油,若不能,则加满,如果两个加油站之间的距离超过一次加满油能行驶的距离,则车会在半路停止,则车不能到达终点。
3.问题:
没有考虑到正确的弹性选择情况时,则局部最优解很容易被推翻。
需要再三举例反驳自己所认为的贪心选择方式看看是不是能够得到正确的局部最优解。
结对编程:
和小伙伴一起结对编程可以很好地找到自己想不到的反驳例子,从而更加准确更加高效地找准贪心选择方式。
也能更好的发现自己的错误之处,减少自己或对方的代码冗余杂乱。