Greedy

动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每作一次贪心选择就将所求问题简化为规模更小的子问题。 对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。

用于解决optimization的问题,即minimum/maximum。对于每个input,如果它是feasible的,就可以包含在solution之中

examples

  • Job with profits and deadlines 把利润从高到低排列,另外列出可以工作的时间。开始遍历job,每次查看当前最高利润的job,看是否可以在deadline之前完成,可以的话,就排到该job离deadline最近的地方
  • Optional Merge Path Merge多个array,可以发现,每次merge长度最短的两个数组,所用的时间最短

results matching ""

    No results matching ""