找零钱问题

可以使用「贪心算法」的一类经典问题是找零钱问题。

在生活中,我们找给别人零钱,通常都是按照「先给出尽可能多的面值较大的纸币(硬币),然后再给出尽可能多的面值第二大的纸币(硬币)」,直到凑成了我们需要凑出的金额为止,这样找零钱得到的纸币(硬币)的张数(个数)最少。能够这样做,与 可选的硬币(纸币)的面值密切相关,大家可以仔细想一想这个问题,相信会是一个非常不错的思考问题。

力扣

区域选择问题

有一类使用「贪心算法」解决的问题称为「活动选择问题」,解决这一类问题的直觉是「优先选择活动最早的活动」。我们下面给出的三道例题都给出了对这一类问题的直觉的证明。如果还想了解「活动选择问题」的详细讨论,可以查看《算法导论》第 16.1 节「活动选择问题」的叙述。

跳跃问题

这一节我们的跳跃问题也是使用「贪心算法」解决的经典问题。对于不同的目标「贪心算法」贪心的点是不一样的。大家可以在学习完这两个例题之后,分析它们之间的区别。