【LeetCode刷题】Greedy贪心算法笔记

题目特点?-怎么判断一道题适合使用greedy?
  • “最”–付出最少,得到最多->贪心是目的:想用最少的投入获得最大回报
  • “给后面的选择留下最大余地,能确保全局最优”
解题思路?
流程:

局部最优 => 前面的选择给后面的选择留下最大余地(比如:留下尽可能多的饼干||留下尽可能大的区间||需求最小的得到的最少)

能确保全局最优(也就是结果正确)

(逻辑自洽:如果我不留下尽可能多的饼干->也就是说新方案饼干减少,其他不变,那么能吃饱的人肯定会不变或减少->非最优方案;如果不留下尽可能大的区间->后面的区间更可能和前面的重叠,需要移除更多->非最优方案)

思路:
  • 首先,顺序问题:先满足最容易满足的(最容易吃饱的/最可能不被剔除的……)

    • 和整体比较:排序–455 435
    • 和附近比较(相邻的两个):赋初值+正反遍历两次–135
    • CPP sort?
  • 其次,局部最优:满足&&留下最大余地

  • 最后,按照次序遍历,直至最后(结果已出/遍历完成)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值