我的算法笔记 | 贪心算法理论知识(上)

贪心算法

1)最自然的算法(在当前形势下取最优)

2)用一种局部最功利的标准,总是做出在当前看来是最好的选择

3)难点在于证明局部最功利的标准可以得到全局最优解

贪心算法无法得到最优解的例子:

  • [ 矩阵往返一次的最大路径和 ]
    在这里插入图片描述

贪心算法求解的标准过程

1,分析业务

2,根据业务逻辑找到不同的贪心策略

3,对于能举出反例的策略直接跳过,不能举出反例的策略要证明有效性

贪心算法的解题套路

1,实现一个不依靠贪心策略的解法X,可以用最暴力的尝试

2,脑补出贪心策略A、贪心策略B、贪心策略C…

3,用解法X和对数器,用实验的方式得知哪个贪心策略正确

4,不要去纠结贪心策略的证明

例题

会议室能容纳的最多宣讲场次:
一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲。给出了每一个项目开始的时间和结束的时间
你来安排宣讲的日程,要求会议室进行的宣讲的场次最多。
返回最多的宣讲场次。

输入:

正数数组costs、正数数组profits、正数K、正数M
costs[i]表示i号项目的花费
profits[i]表示i号项目在扣除花费之后还能挣到的钱(利润)
K表示你只能串行的最多做k个项目
M表示你初始的资金

说明: 每做完一个项目,马上获得的收益,可以支持你去做下一个项目。不能并行的做项目。

输出:你最后获得的最大钱数。

解题思路:

举例不同的标准来进行贪心。按照最早开始时间安排?按照间隔时间最短的来安排?按照利润最高的来安排?

下集继续~

PS:学习内容:左神算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值