贪心算法:理论基础 分发饼干 摆动序列 最大子序和

理论基础 

  • 什么是贪心算法?
    • 贪心的本质是选择每一阶段的局部最优,从而达到全局最优
  • 什么时候用贪心算法?
    • 贪心算法并没有固定的套路。唯一的难点就是如何通过局部最优,推出整体最优。
  • 如何验证可不可以用贪心算法?
    • 最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧
  • 贪心算法一般解题步骤(比较理论化,实用性不强)
    • 将问题分解为若干个子问题
    • 找出适合的贪心策略
    • 求解每一个子问题的最优解
    • 将局部最优解堆叠成全局最优解


455.分发饼干

  • 思路:
    • 如果用最大的饼干来喂胃口最小的孩子,势必会造成饼干尺寸的浪费。所以为了满足更多的小孩,思路应该是尽量用大的饼干来满足胃口大的孩子从后向前遍历小孩数组,尺寸大的饼干优先满足胃口大的孩子,并统计满足小孩数量(或小饼干先喂饱小胃口)。
    • 局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩
  • 时间复杂度:O(nlogn)
  • 空间复杂度:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值