2020-贪心算法

何为贪心算法

现在的货币只有 25 分、20分、10 分、5 分和 1 分四种硬币,怎么样过用最少的硬币凑够41分钱?
贪心答案 25,10,5,1
正确答案 20 20 1

优缺点:

优:简单,高效,省去了为了找最优解可能需要穷举操作,通常作为其它算法的辅助算法来使用;
缺:不从总体上考虑其它可能情况,每次选取局部最优解,不再进行回溯处理,所以很少情况下得到最优解。

代码示例

int sum_money=41;
int num_25=0,num_10=0,num_5=0,num_1=0;
//不断尝试每一种硬币
while(money>=TWENTYFINEFEN) { num_25++; sum_money -=TWENTYFINEFEN; }
while(money>=TENFEN) { num_10++; sum_money -=TENFEN; }
while(money>=FIVEFEN)  { num_5++;  sum_money -=FIVEFEN; }
while(money>=ONEFEN)  { num_1++;  sum_money -=ONEFEN; }
return 0;

练习题目-leetcode

452题 455题 605题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容