Python常用的算法——贪心算法(又称贪婪算法),你知道吗?
发布时间:2019-11-04 23:35:44 所属栏目:优化 来源:编程只为
导读:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是好的选择。也就是说,不从整体最优上加以考虑,他所做出的的时在某种意义上的局部最优解。 贪心算法并不保证会得到最优解,但是在某些问题上贪心算法的解就是最优解。要会判断一个问题能
# 我们转化思路,拼接字符串,比较结果
数字拼接代码如下:
4 活动选择问题 假设有 n 个活动,这些活动要占用同一片场地,而场地在某时刻只能供一个活动使用。 每一个活动都有一个开始时间 Si 和结束时间 Fi (题目中时间以整数表示)表示活动在 [Si, fi) 区间占用场地。(注意:左开右闭) 问:安排哪些活动能够使该场地举办的活动的个数最多? ![]() 贪心结论:最先结束的活动一定是最优解的一部分。 证明:假设 a 是所有活动中最先结束的活动,b是最优解中最先结束的活动。 如果 a=b,结论成立 如果 a!=b,则 b 的结束时间一定晚于 a 的结束时间,则此时用 a 替换掉最优解中的 b ,a 一定不与最优解中的其他活动时间重叠,因此替换后的解也是最优解。 代码如下:
5 最大子序和 求最大子数组之和的问题就是给定一个整数数组(数组元素有负有正),求其连续子数组之和的最大值。下面使用贪心算法逐个遍历。 代码如下:
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |