贪心算法:

1.定义:不从整体上加以考虑,而是得到局部最优解。关键:贪心策略的选择。

2.贪心算法适用情况:2张100,1张50,3张20,一张10,拿三张最大值是?

3.贪心不适用情况:

因为这个时候不能只考虑局部最大,而忽略整体关系。

4.贪心的设计过程中,主要是在寻找偏序关系:

例题1:

 贪心策略:

对策略正确性的证明:其实证明很简单。假设我们在第k处删除。如果在前面删除,因为是顺序位所以删完之后,对应位数的值反而会增大。在第k位删除恰好可以让第k位减小,而前面位数不变。

例题2:

1.从二维变为一维:确定起始行和终止行的位置。

2.求出对应行间的每一列和,问题转变为求一个最大(连续)子序和的问题。

即从二维最大子阵-->一维最大子序

例题3:最小操作次数:

贪心策略及其理解:

表现为具体的贪心算法策略:

也就是说,如果a*k还没有比b大的时候,(我们假设a与b左端点是对齐的,那么我们想让a先加上b的对应末尾之后,再*k)

在k进制下,当情况1满足时,说明我们还想让a进位来接近b。 

例题4:安装雷达:

1,数据映射:

将每一个小岛映射为在x轴上的一维区间形式,从而问题转化为x轴上被染色的区间上要存在某点是雷达所在的位置。

放在区间的末尾,就是为了能够最大限度的满足部分重叠区间的最小值。

例题5:挤奶:

例题6:奶牛晒太阳:

贪心策略:

例题7:

贪心策略:

意思就是,我们肯定要先满足时间最长的。在满足时间最长的时候,尽可能选择满足他要求中的难度系数最小的,以给后面留出更多机会。

贪心算法总结:

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值