Python 算法教程(31):贪心算法基础

前言

贪心算法是每次做出局部最优选择,期望达到全局最优。

一、核心思想

每一步都选择当前最优解,不回溯。

二、适用条件

  1. 贪心选择性质
  2. 最优子结构

三、经典例题:分发饼干

def findContentChildren(g, s):
    g.sort()  # 孩子胃口
    s.sort()  # 饼干大小
    i = 0
    for cookie in s:
        if i < len(g) and g[i] <= cookie:
            i += 1
    return i

四、复杂度

时间:O(n log n),空间:O(1)

五、LeetCode 实战

455. 分发饼干、121. 买卖股票最佳时机

总结

贪心算法简单高效,但需要证明正确性。

下一篇:区间调度问题

发表回复

后才能评论